当前位置:  技术问答>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,切换的道理和上面类似。


/**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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ubuntu下的qt4安装问题
  • qt4中QTcpServer问题
  • QT4下GUI作图问题
  • QT4中文问题,
  • Qt4.0.1的安装问题
  • QT4 编程 QListView控件操作的一个小问题
  • KDevelop下使用qt4 出现问题?
  • 寻解qt4编译问题:“make: *** [main.o] 错误 1”
  • QT4在Ubuntu9.04下的问题 查看代码时“不能启动/usr/bin/uic-qt4”
  • 新手求教QT4 Qthread线程问题!求帮忙看看code谢谢!
  • Qt4开发软件去哪里找
  • QT4下没有bitBlt()了吗?
  • Poppler Qt4
  • fedora 13的QT4程序显示中文异常
  • 求Qt4 的中文参考文档
  • 最近需要着一个linux下的GUI程序,是用QT3开发还是QT4开发好呢?
  • pwmd Qt4 客户端 QPwmc
  • FC6下QT4.3.0不支持中文显示
  • QT4安装完,qmake无效.
  • QT4在linux命令行模式下能运行gui吗?
  • 请问qt4.5怎么使用DirectFB?
  • LINUX QT4中如何将unsigned char 转换为 QString
  • linux qt4环境下,界面显示不了图片,往高手解答
  • 安装QT4后建立工程运行qmake-project提示qmake:command not find
  • qt4导入qt3工程
  • 怎样让KDE变成支持qt4.3.2的呢?
  • QT4 develop
  • Qt4開發環境中,怎麽不認識bool類型阿?
  • [提问] qt4里怎么显示打印信息??
  • Qt4官方的phonon demo:mediaplayer 编译成功 但是运行有如下错误! 看不懂啊!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    请问qt4.5怎么使用DirectFB? iis7站长之家