Results 1 to 19 of 19

Thread: Switching between two ui forms / QMainWindow screens

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #13
    Join Date
    Sep 2017
    Posts
    22
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: Switching between two ui forms / QMainWindow screens

    I made the changes the but still I can see white screen with title bar (screenshot attached) , below is the complete code.

    Thanks you for all the help,

    Qt Code:
    1. /Second UI */
    2. namespace Ui {
    3. class RaptorCoreGUI;
    4. }
    5.  
    6. class RaptorCoreGUI : public QWidget
    7. {
    8. Q_OBJECT
    9.  
    10. public:
    11. explicit RaptorCoreGUI(QWidget *parent = 0);
    12. ~RaptorCoreGUI();
    13. void configInitData(bool);
    14. void setlabel(QString);
    15.  
    16. private:
    17. Ui::RaptorCoreGUI *ui;
    18. };
    19.  
    20. /*First UI*/
    21. amespace Ui {
    22. class RaptorLrsGUI;
    23. }
    24.  
    25. class RaptorLrsGUI : public QWidget
    26. {
    27. Q_OBJECT
    28.  
    29. public:
    30. explicit RaptorLrsGUI(QWidget *parent = 0);
    31. ~RaptorLrsGUI();
    32. void setlabel(QString);
    33.  
    34. private:
    35. Ui::RaptorLrsGUI *ui;
    36. };
    37.  
    38. /*Base class derived from QMainWindow*/
    39. class Base : public QMainWindow
    40. {
    41. Q_OBJECT
    42. public:
    43. RaptorLrsGUI *lrsGUI;
    44. RaptorCoreGUI *coreGUI;
    45. QStackedWidget *stackedWidget;
    46. QVBoxLayout *layout;
    47. ~Base();
    48. explicit Base (QWidget *parent = 0);
    49.  
    50.  
    51. private slots:
    52. void rcvInitData();
    53. };
    54.  
    55. /*Second UI CPP*/
    56. RaptorCoreGUI::RaptorCoreGUI(QWidget *parent) :
    57. QWidget(parent),
    58. ui(new Ui::RaptorCoreGUI)
    59. {
    60. ui->setupUi(this);
    61. this->setAutoFillBackground(true);
    62. this->setStyleSheet("background-color:white;");
    63. }
    64.  
    65. RaptorCoreGUI::~RaptorCoreGUI()
    66. {
    67. delete ui;
    68. }
    69.  
    70.  
    71. void RaptorCoreGUI::setlabel(QString label)
    72. {
    73. qDebug() << "Main Thread(COREGUI): Setting Label\n";
    74. ui->label->setText(label);
    75. }
    76.  
    77. /*First UI cpp*/
    78. RaptorLrsGUI::RaptorLrsGUI(QWidget *parent) :
    79. QWidget(parent),
    80. ui(new Ui::RaptorLrsGUI)
    81. {
    82. ui->setupUi(this);
    83. this->setAutoFillBackground(true);
    84. this->setStyleSheet("background-color:white;");
    85. }
    86.  
    87. RaptorLrsGUI::~RaptorLrsGUI()
    88. {
    89. qDebug() << "Main Thread: destroying the ui object \n";
    90. delete ui;
    91. }
    92.  
    93. void RaptorLrsGUI::setlabel(QString label)
    94. {
    95. qDebug() << "Main Thread(LSRGUI): Setting Label\n";
    96. ui->label->setText(label);
    97. }
    98.  
    99.  
    100. /*main.cpp*/
    101. Base::Base(QWidget *parent) :
    102. QMainWindow(parent, Qt::FramelessWindowHint)
    103. {
    104. qDebug() << "Base CTOR called\n";
    105.  
    106. QPalette pal = palette(); // retrieves the default palette for the widget, as defined by the app's style
    107. pal.setColor( QPalette::Window, Qt::white );
    108. setPalette( pal );
    109.  
    110. setAutoFillBackground( true );
    111.  
    112.  
    113. //Show the first screen, loading raptor status
    114. lrsGUI = new RaptorLrsGUI;
    115. lrsGUI->setlabel(QString("Loading Raptor Status..."));
    116. coreGUI = new RaptorCoreGUI;
    117.  
    118. stackedWidget = new QStackedWidget(this);
    119. stackedWidget->addWidget(lrsGUI);
    120. stackedWidget->addWidget(coreGUI);
    121.  
    122. stackedWidget->setCurrentIndex(0);
    123. setCentralWidget(stackedWidget);
    124. }
    125.  
    126. Base::~Base()
    127. {
    128. qDebug() << "Main Thread: destroying base objects \n";
    129. delete lrsGUI;
    130. delete coreGUI;
    131. delete stackedWidget;
    132. }
    133.  
    134. void Base::rcvInitData()
    135. {
    136. qDebug()<< "Main Thread (CALLBACK): Display second screen\n";
    137. stackedWidget->setCurrentIndex(1);
    138. }
    139.  
    140. //! [1]
    141. int main(int argc, char *argv[])
    142. {
    143. QApplication app(argc, argv);
    144.  
    145. //Instantiate base class
    146. Base baseObj;
    147.  
    148.  
    149. //instantiate Client thread object
    150. ClientThread clientThread;
    151. qDebug() << "Connecting sendmsg and handle_callback1()\n";
    152. QObject::connect(&clientThread, SIGNAL(sendInitData()), &baseObj, SLOT(rcvInitData()), Qt::QueuedConnection);
    153.  
    154. qDebug() << "Main Thread: starting clockThread\n";
    155. clientThread.start();
    156.  
    157. app.exec();
    158. qDebug() << "Mian Thread: Quiting clockThread\n";
    159. clientThread.quit();
    160. qDebug() << "Main Thread: Waiting on clockThread \n";
    161. clientThread.wait();
    162. return 0;
    163. }
    To copy to clipboard, switch view to plain text mode 
    Attached Images Attached Images

Similar Threads

  1. Switching between two forms with button click
    By gfernandes in forum Newbie
    Replies: 3
    Last Post: 30th August 2013, 12:50
  2. Multiple screens navigation
    By keyga in forum Qt Quick
    Replies: 1
    Last Post: 23rd December 2012, 10:28
  3. Problem when switching between forms in QML
    By duc_bkav in forum Qt Programming
    Replies: 0
    Last Post: 24th November 2011, 02:52
  4. Switching between 2 Forms
    By strateng in forum Qt Programming
    Replies: 6
    Last Post: 4th June 2010, 08:09
  5. Multiple Forms and vertical layout in forms
    By eva2002 in forum Qt Programming
    Replies: 0
    Last Post: 13th January 2010, 05:05

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.