读书人

新手问自己写SLOT的有关问题

发布时间: 2012-03-01 10:25:46 作者: rapoo

新手问自己写SLOT的问题
直接在QT CREATOR里新建一个GUI APPLICATION,界面就2个东西 一个PUSHBUTTON一个LINEEDIT,要写一个自己的SLOT点一下BUTTON然后LINE里输出一段字符串,代码如下:
mainwindow.cpp文件:
#include "mainwindow.h"
#include "ui_mainwindow.h"


void MainWindow::mydefine()
{
ui->lineEdit->setText("ssssssss");

}

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QObject::connect(ui->button11, SIGNAL(clicked()),
this, SLOT(mydefine()));
}



MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

mainwindow.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();

protected:
void changeEvent(QEvent *e);

private:
Ui::MainWindow *ui;
void mydefine();
};

#endif // MAINWINDOW_H

问题简单,就是点击以后什么反应都没有。。

[解决办法]
slot函数需定义在slots段落里,才能被moc处理到。如:
private slots:
void mydefine();

读书人网 >QT开发

热点推荐