当前位置: 技术问答>linux和unix
新手:qt编程问题
来源: 互联网 发布时间:2015-11-27
本文导语: 请问可不可以举个例子关于qt编程的,要求写出一个类类里有一个方法是返回一值,用qt designer设计了一个带有Qlineedit,和Qbutton的dialog,按钮一按时,qlineedit显示生成该类的一个对象方法返回的值,只用说明方法就行,谢...
请问可不可以举个例子关于qt编程的,要求写出一个类类里有一个方法是返回一值,用qt designer设计了一个带有Qlineedit,和Qbutton的dialog,按钮一按时,qlineedit显示生成该类的一个对象方法返回的值,只用说明方法就行,谢谢
|
qt designer一般用于设计界面
如果希望实现功能
qt常用的方法是继承该ui实现的类
例如ui生成的类叫BaseDialog
可以继承它生成MyDialog
然后关联QButton实例的clicked信号到MyDialog的功能槽func()(此函数里实现用户想要的功能,还有,此函数需要声明为SLOTS),假设QButton实例为button,MyDialog实例为dialog
择如下连接:
connect(button,SIGNAL(clicked()),dialog,SLOT(func()));
最后在func里面用一个QString对象str,设定需要的内容,QString的使用方法参见qt的帮助文档
最后QLineEdit的实例(假设为edit)如下调用:
edit.setText(str);
则可以显示str的内容了
如果希望实现功能
qt常用的方法是继承该ui实现的类
例如ui生成的类叫BaseDialog
可以继承它生成MyDialog
然后关联QButton实例的clicked信号到MyDialog的功能槽func()(此函数里实现用户想要的功能,还有,此函数需要声明为SLOTS),假设QButton实例为button,MyDialog实例为dialog
择如下连接:
connect(button,SIGNAL(clicked()),dialog,SLOT(func()));
最后在func里面用一个QString对象str,设定需要的内容,QString的使用方法参见qt的帮助文档
最后QLineEdit的实例(假设为edit)如下调用:
edit.setText(str);
则可以显示str的内容了
|
//test.h
#include
#include
#include
#ifndef _TEST_H_
#define _TEST_H_
class MyWidget : public QWidget
{
public:
MyWidget(const QWidget *parent, const char* name);
~MyWidget();
public slots:
void ListText();
private:
QLineEdit *m_output;
QPushButton *m_btnOk;
};
#endif
////////////////////////////////////////////////////////////////////////
//test.cpp
#include "test.h"
MyWidget::MyWidget(const QWidget *parent, const char *name)
:QWidget(parent, name)
{
m_output = new QLineEdit(this);
m_btnOk = new QPushButton(this, tr("Display"));
m_output->setGeometry(10, 10, 80, 40);
m_btnOk->setGeometry(20, 50, 60, 80);
connect(m_btn, SIGNAL(clicked()), this, SLOT(ListText()));
}
MyWidget::ListText()
{
m_output->clear();
QString str = new QString(this, "this is my program!");
m_output->setText(str);
}
#include
#include
#include
#ifndef _TEST_H_
#define _TEST_H_
class MyWidget : public QWidget
{
public:
MyWidget(const QWidget *parent, const char* name);
~MyWidget();
public slots:
void ListText();
private:
QLineEdit *m_output;
QPushButton *m_btnOk;
};
#endif
////////////////////////////////////////////////////////////////////////
//test.cpp
#include "test.h"
MyWidget::MyWidget(const QWidget *parent, const char *name)
:QWidget(parent, name)
{
m_output = new QLineEdit(this);
m_btnOk = new QPushButton(this, tr("Display"));
m_output->setGeometry(10, 10, 80, 40);
m_btnOk->setGeometry(20, 50, 60, 80);
connect(m_btn, SIGNAL(clicked()), this, SLOT(ListText()));
}
MyWidget::ListText()
{
m_output->clear();
QString str = new QString(this, "this is my program!");
m_output->setText(str);
}