C++ QT分隔符小部件?
大家好, 是否有任何小部件可以将两个QWidget分开,并将焦点完全集中到一个小部件上。 如下图所示? 提前感谢,, 乌曼加怎么样 QWidget 1,对于exmaple,C++ QT分隔符小部件?,c++,qt,qt4,C++,Qt,Qt4,大家好, 是否有任何小部件可以将两个QWidget分开,并将焦点完全集中到一个小部件上。 如下图所示? 提前感谢,, 乌曼加怎么样 QWidget 1,对于exmaple,QListViewQWidget 2是QWidgets的组合(左侧是带有显示/隐藏标题的简单QPushButton,右侧是另一个小部件)。。。当用户单击QPushButton时,您所要做的就是隐藏QWidget2 如果你需要一个例子,我可以贴出来 已更新 main.cpp #包括“splitter.h” #包括 int m
QListView
QWidget 2是QWidget
s的组合(左侧是带有显示/隐藏标题的简单QPushButton
,右侧是另一个小部件)。。。当用户单击QPushButton
时,您所要做的就是隐藏QWidget2
如果你需要一个例子,我可以贴出来
已更新 main.cpp
#包括“splitter.h”
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
分离器w;
w、 show();
返回a.exec();
}
拆分器
\ifndef拆分器
#定义拆分器
#包括
类拆分器:公共QDialog
{
Q_对象;
QWidget*widget1;
QWidget*widget2;
QPushButton*按钮;
公众:
拆分器(QWidget*parent=0,Qt::WFlags=0);
~splitter();
专用插槽:
void showHide(void);
};
#endif//SPLITTER\u H
splitter.cpp
#包括
#包括“splitter.h”
拆分器::拆分器(QWidget*父,Qt::WFlags标志)
:QDialog(父级、标志)
{
QApplication::setStyle(“plastique”);
QListView*listView=新的QListView;
QTableView*tableView=新的QTableView;
按钮=新的QPushButton(“隐藏>”);
widget1=新的QWidget;
QHBoxLayout*w1Layout=新的QHBoxLayout;
w1Layout->addWidget(列表视图);
w1Layout->addWidget(按钮);
widget1->setLayout(w1Layout);
widget2=新的QWidget;
QHBoxLayout*w2Layout=新的QHBoxLayout;
w2Layout->addWidget(tableView);
widget2->setLayout(w2Layout);
QSplitter*mainSplitter=新的QSplitter(此);
mainSplitter->addWidget(widget1);
mainSplitter->addWidget(widget2);
连接(按钮、信号(单击())、此、插槽(显示隐藏());
QVBoxLayout*mainLayout=新的QVBoxLayout;
mainLayout->addWidget(mainSplitter);
设置布局(主布局);
}
拆分器::~splitter()
{}
无效拆分器::显示隐藏(无效)
{
如果(widget2->isVisible())
{//隐藏
widget2->setVisible(假);
按钮->设置文本(setVisible(真);
按钮->设置文本(“隐藏>”;
}
}
谢谢mogs,你的意思是我使用深蓝色的QSplitter作为小部件吗?我添加了一些简单的代码作为示例。感谢mosg抽出时间。你救了我一天!
#include "splitter.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
splitter w;
w.show();
return a.exec();
}
#ifndef SPLITTER_H
#define SPLITTER_H
#include <QtGui/QDialog>
class splitter : public QDialog
{
Q_OBJECT;
QWidget* widget1;
QWidget* widget2;
QPushButton* button;
public:
splitter(QWidget *parent = 0, Qt::WFlags flags = 0);
~splitter();
private slots:
void showHide(void);
};
#endif // SPLITTER_H
#include <QtGui>
#include "splitter.h"
splitter::splitter(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
QApplication::setStyle("plastique");
QListView* listView = new QListView;
QTableView* tableView = new QTableView;
button = new QPushButton("Hide >");
widget1 = new QWidget;
QHBoxLayout* w1Layout = new QHBoxLayout;
w1Layout->addWidget(listView);
w1Layout->addWidget(button);
widget1->setLayout(w1Layout);
widget2 = new QWidget;
QHBoxLayout* w2Layout = new QHBoxLayout;
w2Layout->addWidget(tableView);
widget2->setLayout(w2Layout);
QSplitter *mainSplitter = new QSplitter(this);
mainSplitter->addWidget(widget1);
mainSplitter->addWidget(widget2);
connect(button, SIGNAL(clicked()), this, SLOT(showHide()));
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(mainSplitter);
setLayout(mainLayout);
}
splitter::~splitter()
{}
void splitter::showHide(void)
{
if (widget2->isVisible())
{ // hide
widget2->setVisible(false);
button->setText("< Show");
}
else
{ // show
widget2->setVisible(true);
button->setText("Hide >");
}
}