2014-01-07 2 views
2

Я создаю простое приложение на C++ с графическим интерфейсом. Я использую последнюю версию Qt (5.2). Поэтому моя проблема - я хочу создать что-то вроде поля minesweeper в моем окне, и я хочу спросить, как я могу создавать кнопки в коде программы, чтобы я мог создавать разные размеры поля. Должен быть какой-то способ, иначе мне придется разместить 25, 64 и 144 кнопки в трех отдельных окнах, что неверно.Создайте кнопки Qt в коде

Редактировать: Я знаю, что это будет с некоторым циклом, но мне не хватает кода о кнопке «Создать» и код о размещении его на окнах и его позиционировании.

Спасибо заранее

+0

Вы пытались пройти цикл 25,64,144 раза при добавлении кнопки? – Thanos

+0

Да, я создал несколько кнопок, и я проверил их события. Но все это делается с помощью интерфейса drag-n-drop 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 компонент с Repeater и/или сетки в зависимости от вашего точного желания о макете.

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

Смежные вопросы