标题:信号与槽的问题
作者:liyayao
日期:2009-07-14 08:48
内容:
#ifndef __MYWIDGET_H__
#define __MYWIDGET_H__
#include
#include
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = 0);
private slots:
void sure();
private:
QListWidget *listwidget;
};
#endif
#include
#include
#include
#include
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
QPushButton *quit = new QPushButton(tr("sure"));
quit->setFont(QFont("Times", 18, QFont::Bold));
QListWidget *listwidget = new QListWidget;
connect(quit, SIGNAL(clicked()), this, SLOT(sure()));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(listwidget);
layout->addWidget(quit);
setLayout(layout);
}
void MyWidget::sure()
{
listwidget->addItem( QString( "Successful!" ) );
}
#include
#include "mywidget.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
&nb ..
#1 [machou 07-14 09:19]
connect(quit, SIGNAL(clicked()), this, SLOT(sure())); 这个地方一般都用pressed()
#2 [machou 07-14 09:51]
老兄,你没有Q_OBJECT; connect肯定不会被触发了
#3 [liyayao 07-14 11:28]
加入了Q_OBJECT之后就出现---应用程序错误.不知道什么原因........
#4 [liyayao 07-14 11:31]
至于pressed()的能说清楚一点吗?
#5 [浪漫天使 07-14 15:44]
又是c++的问题
构造函数里面的listwidget
QListWidget *listwidget = new QListWidget;
不是 void MyWidget::sure() 函数里面的 listwidget
在void MyWidget::sure() 函数里面 listwidget 还是空的
你点sure能不死么。。。
解决方法是
把
QListWidget *listwidget = new QListWidget;
改成
listwidget = new QListWidget;