日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

qt坐标系统与布局的简单入门

發布時間:2025/3/15 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt坐标系统与布局的简单入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


qt坐標系統

qt坐標系統比較簡單

button.setGeometry(20,20,100,100);

上面的代碼把按鈕顯示為父窗口的20,20處寬度為100,高度為100

接下去是布局

qt里面布局需要加入<QLayout.h>這個頭文件。

qt里面垂直布局

qt里面的垂直布局需要導入<QVBoxLayout.h>這個頭文件。

qt里面的水平布局需要導入<QHBoxLayout.h>這個頭文件。

下面是是一段布局的代碼

QHBoxLayout layout;
layout.addStretch(1);
layout.addWidget(&button,1);
layout.addSpacing(50);
layout.addWidget(&edit,1);
layout.addStretch(1);

其中我們首先創建了一個QHBoxLayout這個類。

然后我們像左邊加入一個比重為1的彈簧,右邊加入一個比重為一的彈簧,中間用50個像素點隔開。

彈簧的目的就是為了固定(stretch設置為0的元素是固定的,而stretch設置為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這個控件的函數首部,我們它可以設置窗口所在的行列還可以設置窗口的跨度。

下面是顯示效果

總的一個代碼

#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的預編譯的方式來注釋代碼。?




總結

以上是生活随笔為你收集整理的qt坐标系统与布局的简单入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。