2014-01-07 87 views
2

我正在用GUI構建一個簡單的C++應用程序。我正在使用最新的Qt(5.2)。所以我的問題 - 我想在我的窗口上創建類似掃雷的字段,我想問如何在程序的代碼中創建按鈕,以便我可以創建不同大小的字段。必須有一種方法,但我必須將25,64和144個按鈕放在三個單獨的窗口中,這是不正確的。在代碼中生成Qt按鈕

編輯:我知道它會有一些循環,但我錯過了有關「創建按鈕」的代碼以及關於將其放置在窗口上並將其定位的代碼。

預先感謝您

+0

你試過在循環25,64,144次時添加一個按鈕嗎? – Thanos

+0

是的,我創建了一些按鈕,我檢查了他們的事件。但這一切都是通過Qt的拖放界面完成的,因爲它們是2-3個按鈕,但現在我想填充整個窗口。 – Bankin

+0

@Thanos這是我的想法,但我不知道如何創建按鈕以及如何將它放在窗口上 – Bankin

回答

2

你有兩種不同的方式來解決這個問題:

1)Qt控件

使用QPushButton與所需的迭代次數的循環中創造。

QVector<QPushButton> pushButtons1(25); 
foreach (QPushButton &pushButton, pushButtons1) 
    pushButton.setText("pushButtons1"); 

QVector<QPushButton> pushButtons2(64); 
foreach (QPushButton &pushButton, pushButtons2) 
    pushButton.setText("pushButtons2"); 

QVector<QPushButton> pushButtons2(144); 
foreach (QPushButton &pushButton, pushButtons3) 
    pushButton.setText("pushButtons3"); 

如果不知道更多關於您的背景和使用情況,很難給出更具體的細節。

2)QtQuickControls

與中繼器和/或網格取決於你對佈局確切的慾望使用Button組件。

import QtQuick 2.0 

Row { 
    Repeater { 
     model: 25 
     Button { 
      text: "foo1" 
     } 
    } 
} 


Row { 
    Repeater { 
     model: 44 
     Button { 
      text: "foo2" 
     } 
    } 
} 

Row { 
    Repeater { 
     model: 144 
     Button { 
      text: "foo3" 
     } 
    } 
} 
+0

謝謝!我能從代碼中設置更多屬性到網格嗎?我不想硬編碼任何東西。 – Bankin

+0

@銀錢:是的,當然。 – lpapp