当前位置: 技术问答>linux和unix
关于QT4的designer的widget跳转问题
来源: 互联网 发布时间:2017-03-07
本文导语: 我想用QT4的designer做点界面,大致是这样的,有两个widget,首先显示第一个widget,第一个widget上有个按钮,鼠标点击后第一个widget关闭,显示低二个widget,直接用QT写代码我会,但用designer做就不知道了,我怎么设...
我想用QT4的designer做点界面,大致是这样的,有两个widget,首先显示第一个widget,第一个widget上有个按钮,鼠标点击后第一个widget关闭,显示低二个widget,直接用QT写代码我会,但用designer做就不知道了,我怎么设计widget呢?是分别设计两个widget然后分开编译再连接吗?还是直接在一个工程里设计两个widget啊?具体应该怎么做呢?望高人指点!
|
QT4的界面切换我做过,在同一个工程里,首先要确定在main()函数里先显示的那个QWidget作为你的主界面,然后用Designer设计子界面类如man_usr这样一个类,,界面会映射成ui_man_usr.h文件,那里记录了界面里的信息。然后你手动添加man_usr.cpp跟man_usr.h文件到相同路径下。(Qmake的时候,同路径下的ui,.h,.cpp会自动被添加到project文件里)man_usr.h里你要自己加载ui图形。我帖个例子给你看。
这样做完之后,你只需要在主界面类里#include "man_usr.h",然后声明一个如man_usr man_access;的对象,在slot里面man_access.show()就显示了。同时主界面若要消失则this->hide();
如果想在man_access里跳转会主界面就把主界面的this传递给man_access,切换的道理和上面类似。
这样做完之后,你只需要在主界面类里#include "man_usr.h",然后声明一个如man_usr man_access;的对象,在slot里面man_access.show()就显示了。同时主界面若要消失则this->hide();
如果想在man_access里跳转会主界面就把主界面的this传递给man_access,切换的道理和上面类似。
/**man_usr.h ***/
#ifndef MAN_USR_H
#define MAN_USR_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "ui_man_usr.h"
class man_usr : public QMainWindow, public Ui::MainWindow_man //Ui::MainWindow_man是ui_man_usr.h里记录子界面图形信息的,自己可以打开ui_man_usr.h看看
{
Q_OBJECT
public:
man_usr(QMainWindow *parent = 0);
~man_usr();
private:
private slots:
/**man_usr.cpp ***/
#include "man_usr.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
man_usr::man_usr(QMainWindow *parent)
: QMainWindow(parent)
{
printf("man usr ok?n");
}
/*
* Destroys the object and frees any allocated resources
*/
man_usr::~man_usr()
{
// no need to delete child widgets, Qt does it all for us
}
/*
* Sets the strings of the subwidgets using the current
* language.
*/
};
/**ui_man_usr.h 保存Designer后,qmake再make,QT4会自动生成ui_man_usr.h***/
/********************************************************************************
** Form generated from reading ui file 'man_usr.ui'
**
** Created: Fri Nov 21 11:21:45 2008
** by: Qt User Interface Compiler version 4.2.1
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
#ifndef UI_MAN_USR_H
#define UI_MAN_USR_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
class Ui_MainWindow_man //注意,我Designer做的是MainWindow,自动生成ui的名字是class Ui_MainWindow,如果有2个MainWindow,则会冲突,所以我改成class Ui_MainWindow_man,其他地方类似
{
public:
QWidget *centralwidget;
QGroupBox *groupBox_man_usr;
QLineEdit *lineEdit_man_pass;
QLineEdit *lineEdit_man_con_pass;
QLabel *label_man_pass;
QLabel *label_man_con_pass;
QLabel *label_man_usr;
QPushButton *pushButton_man_add;
QPushButton *pushButton_man_cancel;
QLineEdit *lineEdit_man_usr;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
groupBox_man_usr = new QGroupBox(centralwidget);
groupBox_man_usr->setObjectName(QString::fromUtf8("groupBox_man_usr"));
groupBox_man_usr->setGeometry(QRect(20, 10, 351, 201));
lineEdit_man_pass = new QLineEdit(groupBox_man_usr);
lineEdit_man_pass->setObjectName(QString::fromUtf8("lineEdit_man_pass"));
lineEdit_man_pass->setGeometry(QRect(110, 60, 131, 29));
lineEdit_man_con_pass = new QLineEdit(groupBox_man_usr);
lineEdit_man_con_pass->setObjectName(QString::fromUtf8("lineEdit_man_con_pass"));
lineEdit_man_con_pass->setGeometry(QRect(110, 100, 131, 29));
label_man_pass = new QLabel(groupBox_man_usr);
label_man_pass->setObjectName(QString::fromUtf8("label_man_pass"));
label_man_pass->setGeometry(QRect(20, 70, 61, 17));
label_man_con_pass = new QLabel(groupBox_man_usr);
label_man_con_pass->setObjectName(QString::fromUtf8("label_man_con_pass"));
label_man_con_pass->setGeometry(QRect(20, 110, 72, 17));
label_man_usr = new QLabel(groupBox_man_usr);
label_man_usr->setObjectName(QString::fromUtf8("label_man_usr"));
label_man_usr->setGeometry(QRect(20, 30, 71, 17));
pushButton_man_add = new QPushButton(groupBox_man_usr);
pushButton_man_add->setObjectName(QString::fromUtf8("pushButton_man_add"));
pushButton_man_add->setGeometry(QRect(30, 140, 80, 27));
pushButton_man_cancel = new QPushButton(groupBox_man_usr);
pushButton_man_cancel->setObjectName(QString::fromUtf8("pushButton_man_cancel"));
pushButton_man_cancel->setGeometry(QRect(160, 140, 80, 27));
lineEdit_man_usr = new QLineEdit(groupBox_man_usr);
lineEdit_man_usr->setObjectName(QString::fromUtf8("lineEdit_man_usr"));
lineEdit_man_usr->setGeometry(QRect(110, 20, 131, 29));
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 397, 25));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QSize size(397, 268);
size = size.expandedTo(MainWindow->minimumSizeHint());
MainWindow->resize(size);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
groupBox_man_usr->setTitle(QApplication::translate("MainWindow", "GroupBox", 0, QApplication::UnicodeUTF8));
label_man_pass->setText(QApplication::translate("MainWindow", "346226260345257206347240201:", 0, QApplication::UnicodeUTF8));
label_man_con_pass->setText(QApplication::translate("MainWindow", "347241256350256244346226260345257206347240201357274232", 0, QApplication::UnicodeUTF8));
label_man_usr->setText(QApplication::translate("MainWindow", "347224250346210267345220215:", 0, QApplication::UnicodeUTF8));
pushButton_man_add->setText(QApplication::translate("MainWindow", "346267273345212240", 0, QApplication::UnicodeUTF8));
pushButton_man_cancel->setText(QApplication::translate("MainWindow", "345217226346266210", 0, QApplication::UnicodeUTF8));
Q_UNUSED(MainWindow);
} // retranslateUi
};
namespace Ui {
class MainWindow_man: public Ui_MainWindow_man {};
} // namespace Ui
#endif // UI_MAN_USR_H
#endif
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。