• 10155阅读
  • 10回复

请教,关于登入界面的设计问题!! [复制链接]

上一主题 下一主题
离线lincheng3068
 

只看楼主 倒序阅读 楼主  发表于: 2007-04-04
— 本帖被 XChinux 执行加亮操作(2007-04-04) —
我现在已经把主截面设计完了.而且他的类为QMainWindow
我现在想做一个登入主界面需要密码和用户的界面!
现在的问题是登入界面是用类QDialog设计的,
那应该那什么语句实现,按登入截面的按钮,就打开主界面呢?
用show()行不?
[ 此贴被XChinux在2007-04-04 19:51重新编辑 ]
离线lincheng3068

只看该作者 1楼 发表于: 2007-04-04
是不是我的设计有问题,?
是不是应该将登入界面一定要作为主窗口?
离线XChinux

只看该作者 2楼 发表于: 2007-04-04
可参照如下代码

int main(int argc, char **argv)
{
        QApplication app(argc, argv);
    LoginDialog *login = new LoginDialog;
    if (login->exec() == QDialog::Rejected)
    {
        delete login;
        return EXIT_SUCCESS;
    }
    MainWindow mainwindow();
    mainwindow.setWindowTitle(mainwindow.windowTitle() + "[" + login->username() + "]");
    delete login;
    mainwindow.showMaximized();
    return app.exec();
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线hehui

只看该作者 3楼 发表于: 2007-04-16
LS的很可行!!
离线aaniao999

只看该作者 4楼 发表于: 2007-04-20
为什么要用== QDialog::Rejected呢?实在想不通,感觉程序的死循环部分是在return app.exec部分,
想不通
离线XChinux

只看该作者 5楼 发表于: 2007-04-20
引用第4楼aaniao999于2007-04-20 10:29发表的  :
为什么要用== QDialog::Rejected呢?实在想不通,感觉程序的死循环部分是在return app.exec部分,
想不通


在登录对话框中除了登录按钮外,还有取消、关闭之类的按钮。
登录对话框里如果用户不登录选择退出或者直接关闭对话框的话,那程序就直接退出。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线wadext

只看该作者 6楼 发表于: 2007-04-20
请问版主,如何由登录按钮触发弹出行为呢,这是我一直迷惑的地方。
参考了style的C/S结构聊天室的源代码,有下面的想法
新建一个window类
class window:public (主界面)
{
      Q_OBJECT
      public:
                  window();
        private slots:
                  void showandHide();

};

class login:public QDialog
{
              Q_OBJECT
              public:
                          loagin();
              private slots:
                          void enter();
              signals:
                          void showwindow();
              private login *log;
};

login::login()
{
                    setupUi(this);
                    connect(enterButton,SIGNAL(clicked()),this,SLOT(enter()));
}
void login::enter()
{
                    emit showwindow();
}

window::window()
{
              setupUi(this);
              login *log = new login;
              log->show();
              connect(log,SIGNAL(showwindw()),this,SLOT(showandHide()));
}
void window::showandHide()
{
          delete log;
          this->show();
}

实验了一下,可行。菜鸟刚入手,还望各位指点。
离线ppdog
只看该作者 7楼 发表于: 2008-03-25
引用第2楼XChinux于2007-04-04 19:49发表的  :
可参照如下代码

可是还是没有解决关闭登录对话框,同时打开主窗体的问题啊?
可以具体说说这个实现的代码吗?
离线zncggaofei
只看该作者 8楼 发表于: 2008-03-26
登录对话框不是用户名和密码确定的时候,才能开主界面????要是关闭对话框,主界面开的话要对话框有用么?
There is someone that is coming or passing away in your life around the clock, so you may lose sight of those seen, and forget those remembered. There is gain and loss in your life, so you may catch sight of those unseen, and remember those forgotten. Nevertheless, doesn’t the unseen exist for sure? Will the remembered remain forever?
离线rogue218
只看该作者 9楼 发表于: 2009-01-31
大家好啊 ,我现在在做登入界面对话框,但是没什么头绪呀?参考以上几位大哥的良言终究还是没能完全实现,不知道怎么去做啊 不知道楼上几位是不是已经做出来啦?
离线iptton

只看该作者 10楼 发表于: 2009-02-02
也算是初学者,写下我的做法:
    DialogImpl的名字没改,把它理解成LoginDialog就行了
我的做法是一开始就实例化主窗口和登陆窗口。
主窗口的init()槽连接到登陆窗口的loginSuccess信号上
登陆窗口在emit loginSuccess()后把自己关掉即可。
所有登陆信息保存在MyModel的一个实例里(MyModel是个单例的简单实现,C++实现单例这个网址上说的MS不错 http://www.cppblog.com/dyj057/archive/2005/09/20/346.aspx )

main.cpp:

#include <QApplication>
#include "dialogimpl.h"
#include "mainwindow.h"
//
int main(int argc, char ** argv)
{
    QApplication app( argc, argv );
    DialogImpl login;
    MainWindow m;
    login.show();
    app.connect(&login,SIGNAL(loginSuccess()),&m,SLOT(init()));
    app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
    return app.exec();
}


发现回了张老帖.. = =
附件: qtcn0202.rar (3 K) 下载次数:4
[url] http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ [url]
快速回复
限100 字节
 
上一个 下一个