QtのウィジェットアプリケーションのUIに手書きのデザインを簡単にリンクする方法を探しています。 UIビルダーを使用して、レイアウトを簡単に調整し、適切な間隔を取得する予定です。これは、UIビルダーなしでは困難です。ボタンが表示されていないのはなぜ私がQVector< QVector<QPushButton*> >
を使用する予定のため
私は、ボタンの3x3のグリッドを作成したい(私はUIビルダでこれを行うだろうかわからない。)Qt:手作業でコード化されたUIとUIビルダーをリンクするには?
ここでは、私が試したものです私が各ボタンの親をウィジェットに設定したとしても?すべてのヘルプはapprecだろう
main.cppに
#include "window.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Window w;
w.show();
return a.exec();
}
#ifndef WINDOW_H #define WINDOW_H #include <QWidget> #include <QPushButton> namespace Ui { class Window; } class Window : public QWidget { Q_OBJECT public: explicit Window(QWidget *parent = 0); ~Window(); private: Ui::Window *ui; static const int tiles = 50, height = 600, width = 500; QVector< QVector<QPushButton*> > cells; }; #endif // WINDOW_H
window.h window.cpp
#include "window.h"
#include "ui_window.h"
Window::Window(QWidget *parent) :
QWidget(parent),
ui(new Ui::Window)
{
ui->setupUi(this);
this->resize(width, height);
int j = 0;
for(auto &row : cells)
{
int i = 0;
for(auto &col : row)
{
col = new QPushButton(this);
col->setGeometry(i, j, tiles, tiles);
i += tiles;
}
j += tiles;
}
}
Window::~Window()
{
delete ui;
for(auto &row : cells)
{
for(auto &col : row)
{
delete col;
}
}
}
iated。