layout()->setSizeConstraint(QLayout::SetFixedSize);
sizeConstraint属性设置为QLayout::SizeFixedSize,这样会使用户不能再重新修改这个对话框窗体的大小。这样一来,布局就会负责对话框重新定义大小的职责,并且也会在显示或者隐藏窗口部件的时候自动得新定义这个对话框的大小,从而可以确保对话框总是能以最佳的尺寸显示出来。
primaryColumnCombo->setMinimumSize(secondaryColumnCombo->sizeHint());
QWidget::sizeHint()函数可以返回布局系统试图认同的“理想”大小。这也解释了为什么不同的窗口部件或者具有不同内容的类似窗口部件通常会被布局系统分配给不同的尺寸大小。
connect连接时
发送对象和接收对象类型要匹配,如窗口部件跟窗口部件连接。
// 初始化时指定父窗口
dynamicButton = new QPushButton(tr("POP"), this);
- QPushButton ( QWidget * parent = 0 )
- QPushButton ( const QString & text, QWidget * parent = 0 )
在对话框子类化时,如果要让窗口部件显示在对话框上,那么在初始化窗口部件时要指定其父窗口(为对话框窗口)。this为窗口部件类的对象指针。
子类化对话框
定义:
class FindDialog : public QDialog
{
Q_OBJECT
public:
FindDialog(QWidget *parent = 0);
...
};
构造函数实现:
FindDialog::FindDialog(QWidget *parent) : QDialog(parent)
{
... // 构造函数中没有使用 parent变量
}
如果构造函数实现时加上 " :QDialog(parent) ",则在主窗口调用FindDialog类对话框窗口对象时,该对话框窗口总是显示在主窗口之上,标题栏图标也和主窗口一样。暂时不知道怎么实现的,希望各位给我留言,告知这是为什么,在此谢过了。
QWidget 用setStyleSheet设置边框:
QWidget不是控件,不能设置边框。不知是否是对的。