首页| 论坛| 消息

标题:用qt4.1.0 designer 设计界面的困惑
作者:chenxi1243
日期:2006-03-17 16:56
内容:

Qt4.1.0,designer产生.ui文件,然后用uic命令转化成.h文件,如果在desinger 中设定了signal and slot ,产生的头文件中会有QObject::connect(inputspinBox1, SIGNAL(valueChanged(QString)), outputWidget, SLOT(setText(QString)));
QObject::connect(inputspinBox2, SIGNAL(valueChanged(QString)), outputWidget, SLOT(setText(QString)));但是这个函数又具有我所期望的函数功能,我怎么修改他??在就是我看到论坛上的关于qt4设计得例子,他的头文件中都有 private slots:
void on_inputSpinBox1_valueChanged(int value);
void on_inputSpinBox2_valueChanged(int value);
这个应该是自给写的头文件把!还有就是在qt4自己带得例子中,也是如下格式:
#ifndef CALCULATORFORM_H
#define CALCULATORFORM_H
#include "ui_calculatorform.h"
class CalculatorForm : public QWidget
{
Q_OBJECT
public:
CalculatorForm(QWidget *parent = 0);
private slots:
void on_inputSpinBox1_valueChanged(int value);
void on_inputSpinBox2_valueChanged(int value);
private:
Ui::CalculatorForm ui;
};
#endif
跟用uic命令产生的.h文件大相径庭,我感觉这是自己写的头文件,那么我就奇怪了?为什么大家不用比较好用的uic命令那??这样的话,用designer不就是只能画几个控件???用uic产生的头文件好像又不能更改,在什么地方加入singal产生后的处理函数那????是不是消息处理函数有固定格式如:
on_inputSpinBox2_valueChanged()中间是对象名,on_对象名_事件??qt4自己带的教程一开始就有所有的.h , .cpp , main.cpp, 等文件,根本摸不清产生顺序.有没有一步步讲解的教程,我刚接触qt觉得不是太好用,可能是用MFC用惯了,还请版主和各位高手指点!


#1 [icevi 03-17 10:57]
我的方法是用designer画界面,然后用UIC自动生成.ui文件,然后另写类来继承,如以下:
#ifndef PANELRFRAME_H
#define PANELFRAME_H
#include
#include
#include "ui_borderframe.h" //这个是UIC生成的文件
class panelFrame: public QWidget,public Ui::borderFrame//UIC生成的UI文件中的类名
{
Q_OBJECT
public :
panelFrame(QWidget *parent = 0);
~panelFrame();
public slots:
private:
protected:
void paintEvent(QPaintEvent *event);
};
#endif
我觉得这样还挺管用的,在.UI中已有的connect,你可以在自己的类中用disconnect断开连接.然后写自己的slots就可以了.在设计时也可以自己修改signal和slot的关系的.
我也才开始用QT,以前没有做过VC++的东西,用用觉得还可以的,找到方法后就觉得好用了.
#2 [chenxi1243 03-17 16:50]
谢谢各位!听大家一讲明白多了.哈哈.
#3 [XChinux 03-17 17:28]
on_inputSpinBox2_valueChanged()
被以这种方式声明的slot,系统会自动地把它和相应的部件、signal等进行连接,省得自己写了就。
到目前为止的Qt4 Designer(4.1.1)为止,它还不能自定义signal和slot,所以使用designer只能定义部件已有的signal和 slot,如果你要使用自己定义的slot那designer里的就不够用了,所以才在源码中加入上面的slot声明。

回复 发表
主题 版块