qt学习(四)主窗选钮,显示新窗口。

      游戏有选区这个习惯, 当然,我特指《冒险岛》了,有的时候就是打开一个主屏幕上五个按钮让你点击进入, 甚至有的时候进去了还要选哪个频道,游戏服务器都得分区,频道来完成功能。现在我们先进入想选的区,不需要的可以看以后的登陆窗口了。

      这一次的主要功能是完成选区,选完进入输入账号界面。

这次用的是一个点完出啦一个所以需要两个窗口,在原有的基础上新建qt设计师界面类。选择dialogwithoutbutton。

把最后一个要显示的当作主界面, 其他的都可以选择dialog模板,

  image

image

image

完成以后,画ui界面, 一个dialog上有5个按钮, 按了触发主窗口,这个就不多说了, 但要注意button的对象名要写清楚。

image

有了这些就可以利用点击按钮来发送信号给亲爱的对话框催他进入主窗口, 哈哈 ,我们又进一步,怎么发信号前进呢?

image把需要的背景截下来填充进去,我们在信号与槽里加下面的。

image

下面主要是程序的实现了,想想,有什么做呢????

      我要显示一张图片,点击一个按钮,再显示一张图片(真正做的时候要用connect的方法写s四个槽再加点料, 因为要涉及数据库, 我这个进入数据库不会认识的)

显示先不说, 按钮需要一个判断,

用if(my1.exec() == QDialog::Accepted)

{

w.show();

}

判断我们上面定义的信号和槽发过来的是不是accept信号,是就if里面的 .

显示图片不是就show那么简单, 你要想让一个没有五官的白纸好看就得加点料

1 背景图铺满对话框需要加设置允许setAutoFillBackground

2 加载图片

QPalette palette;

    //palette.setColor(QPalette::Background, QColor(192,253,123));
    palette.setBrush(QPalette::Background, QBrush(QPixmap("G:/bunker/nGui/49ffd472f029090e57de7.jpg")));
    my1.setPalette(palette);
 
 
3 dialog不是主窗口也所以要设置一下,
my1.setWindowFlags(Qt::Dialog);//主的才能全屏,所以给副的权力
     my1.showFullScreen();

 widget。h

 qt代码不是c++的     main.cpp    主要是main函数修改其他的不用管了。

#include <QtGui/QApplication>
#include "widget.h"
#include "mydlg.h"
 #include <QPalette>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;//
    myDlg my1;//先出的对话框

    my1.setAutoFillBackground(true);
    QPalette palette;
    //palette.setColor(QPalette::Background, QColor(192,253,123));
    palette.setBrush(QPalette::Background, QBrush(QPixmap("G:/bunker/nGui/49ffd472f029090e57de7.jpg")));
    my1.setPalette(palette);
    my1.setWindowFlags(Qt::Dialog);//主的才能全屏,所以给副的权力
    my1.showFullScreen();

    if(my1.exec() == QDialog::Accepted)
    {
    w.show();

    return a.exec();
    }
    else return 0;
}

image

原文地址:https://www.cnblogs.com/mayplestory/p/3903644.html