游戲有選區這個習慣, 當然,我特指《冒險島》了,有的時候就是打開一個主屏幕上五個按鈕讓你點擊進入, 甚至有的時候進去了還要選哪個頻道,游戲服務器都得分區,頻道來完成功能。現在我們先進入想選的區,不需要的可以看以后的登陸窗口了。
這一次的主要功能是完成選區,選完進入輸入賬號界面。
這次用的是一個點完出啦一個所以需要兩個窗口,在原有的基礎上新建qt設計師界面類。選擇dialogwithoutbutton。
把最后一個要顯示的當作主界面, 其他的都可以選擇dialog模板,
完成以后,畫ui界面, 一個dialog上有5個按鈕, 按了觸發主窗口,這個就不多說了, 但要注意button的對象名要寫清楚。
有了這些就可以利用點擊按鈕來發送信號給親愛的對話框催他進入主窗口, 哈哈 ,我們又進一步,怎么發信號前進呢?
下面主要是程序的實現了,想想,有什么做呢????
我要顯示一張圖片,點擊一個按鈕,再顯示一張圖片(真正做的時候要用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; }