此篇日志来自**** ---mygod343434
Question1:
为什么添加的控件显示不出或者堆成了一堆, 布局了也显示不出?
Answer:从QT Assistant 中找到这句话:
Note: Creating a main window without a central widget is not supported. You must have a central widget even if it is just a placeholder.
所以要先 new 一个widget然后调用:
void setCentralWidget( QWidget* widget)
例如:我们在mainwindow中添加2个控件:QLabel 和QLineEdit:
cenWidget = new QWidget(this); //this is point to QMainWindow
setCentralWidget(cenWidget);
QHBoxLayout* H = new QHBoxLayout(cenWidget);
label = new QLabel(cenWidget);
lineEdit = new QLineEdit(cenWidget);
H->addWidget(label);
H->addWidget(label);
Question2:
为什么创建的menu中多了一个Actions,怎么删除?
为什么有这个,目前还不清楚,怎么删除呢?很恶心,须将mainwindow中所有的控件添加这行代码:
setContextMenuPolicy(Qt::NoContextMenu);
对上个例子来说,就是这样:
cenWidget-> setContextMenuPolicy(Qt::NoContextMenu);
label-> setContextMenuPolicy(Qt::NoContextMenu);
lineEdit-> setContextMenuPolicy(Qt::NoContextMenu);
这样Actions就会被禁止了。
另:主窗口的布局最好使用QGridLayout,因为这个可以通过设置行列位置来设置控件位置,最方便