qt坐标系统与布局的简单入门
qt坐標(biāo)系統(tǒng)
qt坐標(biāo)系統(tǒng)比較簡單
button.setGeometry(20,20,100,100);
上面的代碼把按鈕顯示為父窗口的20,20處寬度為100,高度為100
接下去是布局
qt里面布局需要加入<QLayout.h>這個頭文件。
qt里面垂直布局
qt里面的垂直布局需要導(dǎo)入<QVBoxLayout.h>這個頭文件。
qt里面的水平布局需要導(dǎo)入<QHBoxLayout.h>這個頭文件。
下面是是一段布局的代碼
QHBoxLayout layout;
layout.addStretch(1);
layout.addWidget(&button,1);
layout.addSpacing(50);
layout.addWidget(&edit,1);
layout.addStretch(1);
其中我們首先創(chuàng)建了一個QHBoxLayout這個類。
然后我們像左邊加入一個比重為1的彈簧,右邊加入一個比重為一的彈簧,中間用50個像素點隔開。
彈簧的目的就是為了固定(stretch設(shè)置為0的元素是固定的,而stretch設(shè)置為1的元素是可以自由拖拉的),所以加入了彈簧后,左邊的和右邊都是可以被拖動的,而中間的按鈕和空格是固定不動的。
下面是具體的顯示效果
接下去我們介紹柵格布局
qt里面用柵格布局我們得用<QGridLayout.h>這個頭文件下的QGridLayout這個類。
下面是一段代碼
QGridLayout layout;
layout.addWidget(&button,0,0);
layout.addWidget(&edit,0,1);
layout.addWidget(new QPushButton("a"),1,0);
layout.addWidget(new QPushButton("b"),1,1);
layout.addWidget(new QPushButton("c"),2,0,1,2);
layout.setRowStretch(3,1);
layout.setColumnStretch(2,1);
在這里我們在布局里面加入了5個窗口。
4個button,1個輸入框。
最右邊是一個列彈簧,最下面是一個行彈簧。
voidaddWidget(QWidget*,introw,intcolumn,introwSpan,intcolumnSpan,Qt::Alignment=0);
這是QGridLayout里面addWidgets這個控件的函數(shù)首部,我們它可以設(shè)置窗口所在的行列還可以設(shè)置窗口的跨度。
下面是顯示效果
總的一個代碼
#include <QApplication> #include <QWidget> #include <QPushButton> #include <QLayout> #include <QLineEdit> #include <QHBoxLayout> #include <QGridLayout>int main(int argc,char* argv[]) {QApplication app(argc,argv);QWidget w;QPushButton button;button.setText("button"); // button.setParent(&w);QLineEdit edit; // edit.setParent(&w); // QVBoxLayout layout; #if 0QHBoxLayout layout;layout.addStretch(1);layout.addWidget(&button,1);layout.addSpacing(50);layout.addWidget(&edit,1);layout.addStretch(1); #endif#if 1QGridLayout layout;layout.addWidget(&button,0,0);layout.addWidget(&edit,0,1);layout.addWidget(new QPushButton("a"),1,0);layout.addWidget(new QPushButton("b"),1,1);layout.addWidget(new QPushButton("c"),2,0,1,2);layout.setRowStretch(3,1);layout.setColumnStretch(2,1); #endifQObject::connect(&button,SIGNAL(clicked(bool)),&w,SLOT(close()));w.setWindowTitle("hello world");w.setLayout(&layout);w.show();return app.exec(); } 其中我們用#if 0?.....#endif的預(yù)編譯的方式來注釋代碼。?
總結(jié)
以上是生活随笔為你收集整理的qt坐标系统与布局的简单入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql联合索引like_MySQL全
- 下一篇: fun函数python_Python函数