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();對象