簡體   English   中英

在QDialog中使用QGridLayout定位QPushButton?

[英]Positioning a QPushButton using QGridLayout in a QDialog?

我試圖在一個簡單的應用程序中放置一個QPushButton 我想做的是在應用程序的底部居中放置一個按鈕。

我不想使用設計器,所以請不要建議(這是出於我的好奇心)。 這是我的代碼:

QGridLayout* layout = new QGridLayout;
QPushButton* button1 = new QPushButton("button1");
centralWidget->setLayout(layout);
qDebug() << "columns:";
qDebug() << layout->columnCount();
qDebug() << "rows:";
qDebug() << layout->rowCount();
button1->setFixedSize(100, 50);
layout->addWidget(button1,2,0,1,1,Qt::AlignCenter);

因此,我對此有些好奇。

首先,當我執行columnCount()rowCount() ,每個返回1 如果要在網格中設置按鈕的行和列位置,那么顯然我不會想要1x1網格。 我該如何改變?

第二,如果我要空白行怎么辦? 我必須為此使用墊片嗎?

提前致謝。

首先,當我執行columnCount()和rowCount()時,每個返回1。 如果要在網格中設置按鈕的行和列位置,那么顯然我不會想要1x1網格。 我該如何改變?

如果在網格的大小僅為1 x 1的情況下 ,將小部件添加到網格中,就可以做到這一點: row = 20 column = 20 它只是創建一個空單元格(大小為零 ),記錄未使用的行和列。

第二,如果我要空白行怎么辦? 我必須為此使用墊片嗎?

是的,如果您想要一個空的行或列,則必須在其中一個單元格中放置一個QSpacerItemQSpacerItem )或一個空的小部件(一個普通的QWidget )。 如果要使行/列的高度/寬度固定,則必須為此墊片(或小部件)設置固定的寬度或高度。

首先,當我執行columnCount()和rowCount()時,每個返回1。 如果要在網格中設置按鈕的行和列位置,那么顯然我不會想要1x1網格。 我該如何改變?

是的,可以解決此問題,以將QSpacerItem添加到第0行和第1行。

第二,如果我要空白行怎么辦? 我必須為此使用墊片嗎?

是的,您可以為其使用QSpacerItem。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM