【发布时间】:2018-09-16 22:20:17
【问题描述】:
每次尝试打开新窗口或对话框时,我都会在 Qt 中收到关于设置几何图形的警告。它甚至发生在QDialogInput 上。而且我没有尝试设置几何图形,只是调用窗口已经给了我一个警告。这是一个例子:
main.cpp
QLineSeries *series = new QLineSeries();
for(int i=0;i<graphPoints;i++)
series->append(i,(qrand()%5)+20);
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("X vs Y teste");
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
QDialog *graph = new QDialog(this);
QHBoxLayout *layout = new QHBoxLayout(graph);
layout->addWidget(chartView);
graph->setLayout(layout);
graph->exec();
警告:
setGeometry: Unable to set geometry 116x30+619+380 on QWidgetWindow/'QDialogClassWindow'. Resulting geometry: 116x91+619+380 (frame: 8, 30, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 91x91, maximum size: 16777215x16777215).
这不是问题,直到最近我尝试使用setGeometry(200,200,200,200),但什么也没发生。
知道这可能是什么吗?
编辑
我做了一个非常简单的程序。 Ony 包括QInputDialog 并称为QInputDialog::getString()。示例如下:
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QInputDialog>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
主窗口.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QInputDialog::getText(this,"title","label");
}
MainWindow::~MainWindow()
{
delete ui;
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
输出:
Starting C:\Users\socc\Documents\Qt\build-VerySimple-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\VerySimple.exe...
setGeometry: Unable to set geometry 116x30+100+105 on QWidgetWindow/'QInputDialogClassWindow'. Resulting geometry: 178x90+100+105 (frame: 8, 30, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 178x90, maximum size: 524287x90).
C:/Users/socc/Documents/Qt/build-VerySimple-Desktop_Qt_5_10_0_MinGW_32bit-Debug/debug/VerySimple.exe exited with code 0
【问题讨论】:
-
如果有布局,例如:QHBoxLayout。布局中的小部件不能直接使用
setGeometry。 -
那么如何使用布局设置几何图形?