• 11137阅读
  • 8回复

窗口不能居中显示!!!! [复制链接]

上一主题 下一主题
离线yleesun
 

只看楼主 倒序阅读 楼主  发表于: 2008-06-30
— 本帖被 XChinux 执行加亮操作(2008-07-01) —
我用的mainwindow,掉了setCentralWidget,但是窗口还是没有居中显示。哪位知道,告诉我吧。谢谢了。
离线yleesun

只看该作者 1楼 发表于: 2008-07-01
自己顶下!!!
离线frankpaine
只看该作者 2楼 发表于: 2008-07-01
这个问题我也郁闷了好久。
现在搞定了,给你看个例子。
其中mWindow.h 是我写的主窗口的头文件,继承于QMainWindow。

///main.cpp
#include <QApplication>
#include <QTextCodec>
#include <QDesktopWidget>
#include "mWindow.h"

int main(int argc, char* argv[])
{
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
      QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
//上面三行是为了解决中文乱码,需要QTextCodec
    QApplication app(argc, argv);

    mWindow example;

    example.setGeometry(
    (int)(QApplication::desktop()->width() - (QApplication::desktop()->width() -(QApplication::desktop()->width() / 2)) * 1.5) / 2,
    (int)(QApplication::desktop()->height() - (QApplication::desktop()->height() -(QApplication::desktop()->height() / 2)) * 1.5) / 2,
    (int)((QApplication::desktop()->width() - (QApplication::desktop()->width() / 2)) * 1.5),
    (int)((QApplication::desktop()->height() - (QApplication::desktop()->height() / 2)) * 1.5));
///这些才是设置窗口位置的,需要QDesktopWidget

    example.show();

    return app.exec();
}

ps:setCentralWidget不是设置主窗口的,
而是用来设置主窗口内的中央部件的。
离线mumutouv

只看该作者 3楼 发表于: 2008-07-02
我是这样做的,直接用move就可以了,速度比你的要快
离线frankpaine
只看该作者 4楼 发表于: 2008-07-02
引用第3楼mumutouv于2008-07-02 08:45发表的  :
我是这样做的,直接用move就可以了,速度比你的要快


哦 是的。学习了 呵呵~~~~~~
离线frankpaine
只看该作者 5楼 发表于: 2008-07-02
引用第3楼mumutouv于2008-07-02 08:45发表的  :
我是这样做的,直接用move就可以了,速度比你的要快


以下是我用move实现居中的代码,800,600是我那个程序主窗口的长宽,具体酌情修改。
example.move((app.desktop()->width()-800)/2, (app.desktop()->height()-600)/2);

对比了下,发现还有个小区别,
move得到的位置是连任务栏在内,整个屏幕居中,
setGeometry得到的位置是去掉任务栏高度的居中。
离线yleesun

只看该作者 6楼 发表于: 2008-07-02
谢谢各位,但我发现了个问题,setGeometry是把窗口居中显示了,但是同时却修改了窗口原来的大小。
离线voidbroken

只看该作者 7楼 发表于: 2011-02-18
move得到的位置是连任务栏在内,整个屏幕居中,
setGeometry得到的位置是去掉任务栏高度的居中。
离线qqmus
只看该作者 8楼 发表于: 2011-02-19
DOU SHI GAOSHOU A
快速回复
限100 字节
 
上一个 下一个