当前位置: 技术问答>linux和unix
QT中如何让一个按钮单击后更新一个TextEdit
来源: 互联网 发布时间:2016-05-12
本文导语: 我的程序如下,想让BUTTON CLICKED后让pTextEdit2显示pTextEdit1的内容,不知道哪里做错了 才用QT,不是很了解,希望大家帮忙看看 #include #include #include #include class MyWidget : public QWidget { private: QTextEdit ...
我的程序如下,想让BUTTON CLICKED后让pTextEdit2显示pTextEdit1的内容,不知道哪里做错了
才用QT,不是很了解,希望大家帮忙看看
才用QT,不是很了解,希望大家帮忙看看
#include
#include
#include
#include
class MyWidget : public QWidget
{
private:
QTextEdit *pText1,*pText2;
QPushButton *pButton;
public:
MyWidget(QWidget* parent);
~MyWidget();
public slots:
void buttonPressed();
};
MyWidget::MyWidget(QWidget* parent)
:QWidget(parent)
{
setFixedSize(300,300);
pText1 = new QTextEdit("Edit1",this);
pText2 = new QTextEdit("Edit2",this);
pButton = new QPushButton("Button",this);
pText1->resize(100,100);
pText1->setGeometry(0,0,100,100);
pText2->resize(100,100);
pText2->setGeometry(120,0,100,100);
pButton->resize(100,30);
pButton->setGeometry(10,200,100,30);
QObject::connect(pButton,SIGNAL(clicked()),this,SLOT(buttonPressed()));
}
MyWidget::~MyWidget()
{
delete pText1;
delete pText2;
delete pButton;
}
void MyWidget::buttonPressed()
{
pText2->setText(pText1->toPlainText());
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.resize(400,400);
MyWidget my_widget(&window);
my_widget.setGeometry(10,10,300,300);
window.show();
return app.exec();
}
|
确实是刚接触QT
QT 对自定义SLOT 是有要求的
1 在类中引用 Q_OBJECT 宏
2 类声名要单独放到一个.H 文件中去
我将你的代码改动后,成功执行!
另注:QT3和QT4有很多不同,建议使用比较新一写的版本.
QT 对自定义SLOT 是有要求的
1 在类中引用 Q_OBJECT 宏
2 类声名要单独放到一个.H 文件中去
我将你的代码改动后,成功执行!
另注:QT3和QT4有很多不同,建议使用比较新一写的版本.