1.QObject是全部Qt对象的基类,他给C++的类带来了若干新的功能。使用Q_OBJECT宏能声明一个C++类为一个QObject。如:ide
1 class Notepad : public QMainWindow 2 { 3 Q_OBJECT 4 5 public: 6 explicit Notepad(QWidget *parent = 0); 7 ~Notepad(); 8 9 private: 10 Ui::Notepad *ui; 11 };
3.类A有界面类成员widget,widget放入QStackedWidget中,若已经经过setFixedSize设定widget的大小,在利用setCurrentIndex(index)显示widget时可能会失败。布局
4. ui
int main(int argc, char* argv[]) { QApplication a(argc,argv); Widget w; myDlg my1; //创建本身新建的类的对象my1 if(my1.exec()==QDialog::Accepted) //利用Accepted信号判断 enterBtn是否被按下 { w.show(); //若是被按下,显示主窗口 return a.exec(); //程序一直执行,直到主窗口关闭 } else return 0; //若是没被按下,则不会进入主窗口,整个程序结束运行 }
5.新建项目时,类总要继承QWidget,QDialog或QMainWindow中之一,若是以后修改该类为不继承这三者,会出现错误。推测既然在建工程时必须继承三者之一,那么意味着以后也不能随便改,至于到底是为何,暂不清楚。this
6. 类中如有成员QWidget widget会出现错误“QWidget: Cannot create a QWidget without QApplication”,由于若QWidget做为类中的成员,没有相应的QApplication去管理它的资源。spa
7.3d
QHBoxLayout * p1 = new QHBoxLayout(this);
QVBoxLayout * mainLayout = new QVBoxLayout(this);
mainLayout->addLayout (p1);code
会提示:mainLayout加入一个已有父亲的布局p1.并且运行后发现界面混乱……把第一句改成QHBoxLayout * p1 = new QHBoxLayout();对象