1) QT中,按鈕類叫做QPushButton。在mywidget.h的MyWidget類的私有變量中:
QPushButton b1; 或者QPushButton* b2;按住F4可以直接跳到.cpp文件。
2) 按鈕初始化:在窗口類的構造函數里初始化即可。b2=new QPushButton(…)選中按F1可以查看構造函數以及其參數。
QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)//圖標以及…… |
QPushButton(const QString &text, QWidget *parent = nullptr)//按鈕上顯示的內容以及… |
QPushButton(QWidget *parent = nullptr)//父窗口 |
至於修改內容的函數,需要從父類(QAbstractButton)里找。即void setText(const QString& text);
因此找不到相應的成員函數實現其功能的時候,可以從父類里找一下。
b2->setText(“Hello QT”);
b2=new QPushButton(“Hello QT”);
b2->show();
想要的效果是把按鈕顯示到窗口里(按鈕實際上也是窗口?),但這時候按鈕是獨立顯示出來的。如果窗口需要依附於另一個窗口,就應該給該窗口指定父類,這可以在構造函數內實現。因為此處實例化按鈕是在MyWidget構造函數內實現的,所以父類指針是this,即b2=new QPushButton(“Hello QT”,this);
或者:QPushButton b1; b1.setParent(this);
注意,如果指定了父親的話,就不用調用show函數了,因為直接在父類窗口顯示了。
3) 兩個按鈕默認在同一個位置的話會發生覆蓋,需要改變按鈕的位置,相當於移動。
b1.move(x,y):移動到(x,y)
QT中窗體的坐標系:原點為左上角,x向右遞增,y向下遞增。
4) QT內存自動回收機制:無需delete
但適用范圍有限:
i)適用於從QObject派生的類。
派生分為直接派生和間接派生(子孫)。
ii)指定父類(父親析構前先析構孩子)。
5)窗口大小
b1.size()獲取大小,b1.resize()重新設置大小。如果不知道參數怎么寫,按F1無反應,可以隨便寫一個比如b1.resize(1)再按F1即可。
6)設置窗口標題可以在類內部如this->setWindowTitle(“FUCK!”);
或者在main函數里:w. setWindowTitle(“FUCK!”);
7)設置固定寬度or高度:this->setFixedSize(a,b)…
8)setWindowIcon可以設置圖標,QString的路徑不能有中文。