2014-01-07 49 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