Как я могу сделать следующее: я хотел бы показать свое главное окно при запуске на центральном экране.QML - положение главного окна при запуске (центр экрана)
2
A
ответ
1
Перед тем, как вы его покажете, вам понадобится setGeometry
. Самый простой способ, с помощью которого я могу придумать, какую геометрию вам нужно, - QDesktopWidget
. Попробуйте пример ниже (создать QPushButton
, нажмите на нее при перемещении виджета вокруг различных экранов), и вы увидите, что я имею в виду:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(released()), this, SLOT(ButtonPressed()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::ButtonPressed()
{
qDebug() << QApplication::desktop()->screenCount();
qDebug() << QApplication::desktop()->screenNumber();
qDebug() << QApplication::desktop()->screenGeometry(this);
}
Должно быть достаточно просто оттуда придумать общий вариант, который работает (если он существует).
12
При использовании QtQuick, это можно сделать:
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.0
ApplicationWindow {
visible: true
width: 320
height: 480
Component.onCompleted: {
setX(Screen.width/2 - width/2);
setY(Screen.height/2 - height/2);
}
}
10
ответ продаж гораздо лучше, тем более, что виджеты не упоминались ... Во всяком случае, вот еще более простой вариант его ответа:
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.0
ApplicationWindow {
visible: true
x: Screen.width/2 - width/2
y: Screen.height/2 - height/2
width: 320
height: 480
}