Qt的零碎知識

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 };
View Code

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

相關文章
相關標籤/搜索