找回密码
 立即注册
收起左侧

QT程序的自适应屏幕大小的问题

11
回复
39696
查看
[复制链接]
累计签到:29 天
连续签到:1 天
来源: 2013-11-6 15:57:22 显示全部楼层 |阅读模式
10Qter豆
本帖最后由 uiaxiaobo 于 2013-11-7 08:45 编辑

     你好!我用QT设计师做的界面,现在想让程序能够一运行就能够自适应屏幕大小,但是我现在发现屏幕的尺寸只跟我的xxxx.ui即界面里面的设置有关:


     我本来想在mainwindow.cpp中通过resize来设置自适应屏幕:
       QDesktopWidget *desktop=QApplication::desktop();

    int width=desktop->width();
    int height=desktop->height();
    QWidget *widget = new QWidget;
    widget->resize(width,height);
    setCentralWidget(widget);
   
     

    但是发现似乎不起作用
    这个问题要怎么解决?谢谢!
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

已经给你说过啦! 使用this->showMaximized(); 这就是最大化!你把 你把这一句放到你构造函数中就可以实现你运行程序就是最大化的效果!
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-6 15:57:23 显示全部楼层
已经给你说过啦!

使用this->showMaximized();   这就是最大化!你把
你把这一句放到你构造函数中就可以实现你运行程序就是最大化的效果!

回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-6 16:03:13 显示全部楼层
可以直接全屏即可。。  
this->setWindowFlags(Qt::FramelessWindowHint);  
当然这样的话布局你自己就的做好规划..免得因为分辨率扩大或者缩小而到你的布局混乱!

还有一种方式就是诸如官方文档中的一样..使用宏定义!
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-11-6 16:14:40 显示全部楼层
study_wen 发表于 2013-11-6 16:03
可以直接全屏即可。。  
this->setWindowFlags(Qt::FramelessWindowHint);  
当然这样的话布局你自己就的做 ...

谢谢!
但是我试了下发现FramelessWindowHint好像是去掉标题栏,并不是全屏
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-6 16:30:09 显示全部楼层
uiaxiaobo 发表于 2013-11-6 16:14
谢谢!
但是我试了下发现FramelessWindowHint好像是去掉标题栏,并不是全屏

哦! 那是记错了...  可能这个用习惯了..
试试!this->setWindowState(Qt::WindowFullScreen);
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-11-6 16:48:06 显示全部楼层
study_wen 发表于 2013-11-6 16:30
哦! 那是记错了...  可能这个用习惯了..
试试!this->setWindowState(Qt::WindowFullScreen); ...

嗯,
的确是可以全屏了,但是我又发现这样标题栏就看不到了,关闭最小化最大化都看不到了,不知道这是我的特例还是这函数本来就是这样的,我是在windows下做的
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-6 16:53:02 显示全部楼层
uiaxiaobo 发表于 2013-11-6 16:48
嗯,
的确是可以全屏了,但是我又发现这样标题栏就看不到了,关闭最小化最大化都看不到了,不知道这是我 ...

那你为什么要全屏呢?
还有一种方法:
this->showFullScreen();
他的同类还有!
this->showMaximized();
this->showMinimized();
this->showNormal();
等!   方法很多...选择一种最适合你的吧!
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-11-6 17:01:28 显示全部楼层
study_wen 发表于 2013-11-6 16:53
那你为什么要全屏呢?
还有一种方法:
this->showFullScreen();

这样的啊!
那可能是我对全屏的理解错了
我以为全屏是标题栏也在显示中的,你的意思应该是全屏是不包括标题栏是吧?
你给我的这几个应该就是你的全屏的意思
所以要那种显示标题的全屏我是这么做的:
    QDesktopWidget *desktop=QApplication::desktop();
    int width=desktop->width();
    int height=desktop->height();
    MainWindow::setGeometry(5,30,width,height-80);
    最后的减80是因为我感觉不减的话状态栏又被windows自带的状态栏给遮挡住了,蛋疼,总感觉不太正规的感觉
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-11-6 17:05:46 显示全部楼层
uiaxiaobo 发表于 2013-11-6 17:01
这样的啊!
那可能是我对全屏的理解错了
我以为全屏是标题栏也在显示中的,你的意思应该是全屏是不包括标 ...

这样也可以!
其实你没有必要借助Qt自带的那些最大化最小化按钮的呀!
自己P几个! 写个BUTTON写个样式表比它们的好看多了...   
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-11-6 17:09:09 显示全部楼层
本帖最后由 uiaxiaobo 于 2013-11-6 17:12 编辑
study_wen 发表于 2013-11-6 17:05
这样也可以!
其实你没有必要借助Qt自带的那些最大化最小化按钮的呀!
自己P几个! 写个BUTTON写个样式 ...

嗯,十分感谢您耐心的帮助
样式表什么的我没接触过,有空再去看看

其实我要的意思我所谓的最大化是和标题栏自带的最大化是一样的效果
我发现点击标题栏自带的最大化后:标题栏、状态栏的位置都很合适,我就是希望程序一运行就是和点击最大化后是一样的效果?你知道怎么实现和最大化一模一样的效果吗?
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-11-7 08:45:27 显示全部楼层
study_wen 发表于 2013-11-6 17:12
已经给你说过啦!

使用this->showMaximized();   这就是最大化!你把

昨天后来下班了

果然可以
十分感谢!
回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-5-4 13:45:37 显示全部楼层
study_wen 发表于 2013-11-6 17:05
这样也可以!
其实你没有必要借助Qt自带的那些最大化最小化按钮的呀!
自己P几个! 写个BUTTON写个样式 ...

样式表怎么写啊????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了