感谢您阅读此帖。我搜索了论坛,博客和SO,但无法得到我真正需要的东西。
我正在尝试如何显示多个主窗口。我使用的是嵌入式硬件板。我已成功将QT lib移植到它上面。
我写了一个小程序。
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
的main.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow text_plane;
text_plane.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
text_plane.setStyleSheet("background-color: Black;");
text_plane.show();
a.exec();
return a.exec();
}
以上代码仅显示一个窗口。 即使我在text_plane.show()之后创建一个Mainwindow w1,如
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow text_plane,w1;
text_plane.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
text_plane.setStyleSheet("background-color: Black;");
text_plane.show();
w1.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
w1.setStyleSheet("background-color: Yellow;");
w1.show();
a.exec();
return a.exec();
}
现在只显示w1窗口。 text_plane窗口怎么样?怎么回来。
任何人都可以帮我解决这个问题。 谢谢
答案 0 :(得分:1)
首先,我想知道,你想在这里实现什么目标:
a.exec();
return a.exec();
你知道,你只需要调用一次这个方法。
其次,您的两个窗口都会显示(您可以在任务栏中看到它),但是,由于您设置了Qt::FramelessWindowHint
,其中一个窗口会被绘制在另一个窗口之上。您可以使用move
(或类似的东西)拆分它们:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow w, w1;
w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
w.setStyleSheet("background-color: Black;");
w.show();
w1.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
w1.setStyleSheet("background-color: Yellow;");
w1.show();
w.move(0, 0);
w1.move(100, 100);
return app.exec();
}