Я спроектировал кнопку благодаря Qt-конструктору с именем colorizeButton и подключил ее к слоту в моем коде:
.h:
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
Draw * draw;
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots :
void colorize();
private:
Ui::MainWindow *ui;
};
.cpp, конструктормой QMainWindow:
draw = new Draw(parent);
setCentralWidget(draw);
ui->setupUi(this);
ui->colorizeButton->setAutoDefault(false);
connect(ui->colorizeButton, SIGNAL(clicked()), this, SLOT(colorize()));
.cpp, после:
void MainWindow::colorize() {
cout << "colorize()" << endl;
QColor color = QColorDialog::getColor(Qt::black, draw);
draw->Draw::setColor(color);
}
Когда я запускаю это и нажимаю на colorizeButton, «colorize ()» распечатывается, но затем программа падает,Вы понимаете, почему?
Я в замешательстве, потому что до этого я использовал QAction и аналогичное соединение (это было просто «triggered ()» вместо «clicked»), и это работало: я мог взаимодействовать сQColorDialog.
Заранее спасибо!: D