一个支持多屏显示的程序
返回的 QDesktopWidget 存储着当前桌面的信息。
注意 ,这个函数必须在创建了 QApplication 对象之后才能使用, 否则会出错。具体原因,要问qt。
这个desktop有几个很有用的函数,用来获取当前的屏幕状态和分辨率
1) int desktop->primaryScreen()
获取主屏幕的索引序号,(windows开始菜单所在的屏幕为主屏幕), 每个副屏幕序号+1
2) int desktop->screenCount()
获取当前屏幕个数
3) QRect desktop->screenGeometry(int screen_index)
根据当前的屏幕序号获取屏幕宽高等属性
4) int desktop->width()
获取虚拟屏幕全宽, 注意这个比较猛,是获取的总宽度,对于横向扩展屏来说,也就是 屏幕1+ 屏幕2 + ... 的宽度
5) int desktop->height()
获取虚拟屏幕全高
下面的这个程序就可以测试多屏(只测了横屏,没测试纵屏): 根据当前屏幕数量n,生成n个窗口,每个窗口都占据了一个屏幕
#include "mainwindow.h"
#include <QApplication>
#include <QDesktopWidget>
#include <cstdio>
#include <QMessageBox>
typedef struct{
int screen_no;
QRect rect;
}SCREEN;
SCREEN g_screens[10];
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDesktopWidget *desktop = QApplication::desktop();
int screen_count = desktop->screenCount();
int prim_screen = desktop->primaryScreen();
char warning[100], *idx=warning;
for(int i=0; i<screen_count ;i++ ){
g_screens[i].screen_no = prim_screen + i;
g_screens[i].rect = desktop->screenGeometry(prim_screen + i);
sprintf(idx, "screen%d w[%d], h[%d] ",i, g_screens[i].rect.width(),g_screens[i].rect.height());
idx += strlen(idx);
}
sprintf(idx, "total width[%d] , total height[%d] \n", desktop->width(), desktop->height() );
QMessageBox::warning(NULL, "screen", warning, QMessageBox::Ok);
MainWindow wnd[5];
for(int i=0; i < screen_count; i++){
wnd[i].resize(g_screens[i].rect.width(),g_screens[i].rect.height());
if(i == 0)
wnd[i].move(0,0);
else
wnd[i].move(i* g_screens[i-1].rect.width(),0);
char str[50];
sprintf(str,"this is screen %d",i);
wnd[i].show();
}
return app.exec();
}
一个支持多屏显示的程序相关推荐
- c# Winform 开发分屏显示应用程序
c# Winform 开发分屏显示应用程序 原文 http://blog.csdn.net/soft2buy/article/details/7082668 分屏显示即可把一台主机内运行的多个程序分别 ...
- android n进入分屏代码分析_平板电脑全面进入多任务时代,Android N原生支持分屏显示...
去年十月苹果WWDC上发布iOS9首次原生支持iPad平板电脑的分屏显示,希望通过大屏多任务iPad产品,向微软的Surface为代表的Windows10平板PC发起挑战,撬开商务和企业级市场.近日据 ...
- 基于C++实现一个支持简单交互绘图小程序
资源下载地址:https://download.csdn.net/download/sheziqiong/86763967 资源下载地址:https://download.csdn.net/downl ...
- 鸿蒙系统息屏显示动画,魅族Flyme 9:支持息屏显示 Alive壁纸
今天下午,魅族带来了Flyme 9发布会.魅族表示,系统作为用户与手机交互的媒介,是用户体验的灵魂.回想起来,每一代Flyme都是经典.Flyme以简洁优雅的设计和创新实用的功能为用户创造极致体验. ...
- iqooz1服务器无响应,iqooz1支持息屏显示吗,iqooz1可以息屏显示吗
iQOOZ1手机是2020年6月份发布的新手机,许多 客户想对它多一些掌握,那麼iqooz1适用息屏显示吗? 知名品牌型号规格:iqooz1 系统版本:iqoo UI iqooz1适用息屏显示吗 iq ...
- python画布添加背景图片_Python 设置 Canvas 背景图片且支持全屏显示
图1 全屏显示图片 由于 PhotoImage 若没有被引用,便会自动销毁,所以需要显示的引用它: from tkinter import Tk, Canvas from PIL import Ima ...
- VB.NET在WinForm中嵌入谷歌浏览器_制作全屏显示网页程序_并读取INI配置文件_根据配置文件显示不同的网页---VB.NET工作笔记016
我们做了个项目,科技馆的,需要把绚丽的网页,全屏放到浏览器上显示,但是....他们做的这个网页...我去,只支持谷歌这样的浏览器,在IE这样的浏览器模式下,显示有问题... 不知道是不是因为,没有使用 ...
- win7支持分屏显示
2019独角兽企业重金招聘Python工程师标准>>> 桌面掰成两瓣用 如何实现Win7分屏 作为一个天天写文章的"文人"来说,写文章和查资料是密不可分的,以前使 ...
- android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用
微软又做了一款 Android 锁屏应用,质量还不错.如果你已经设置了锁屏,Picturesque可能让你再解锁一次你真的需要在锁屏就处理这么多任务吗? 微软又来给 Android 提供应用了,他们昨 ...
最新文章
- Amazon Go开门营业,号称无需现金、无需排队结账,现场究竟体验如何?
- sql server存储过程中SELECT 与 SET 对变量赋值的区别
- k-means-algorithm
- 免费申请Firefly-RK3288开源板
- 20个常用Linux性能监控工具/命令
- 数据库操作的隔离级别 Transaction Isolation Levels
- PyAutoIt 安装(Windows 版)
- 【转】JMeter学习(二十七)Jmeter常见问题
- Android Studio插件安装
- 怎样改变java编码风格_如何说服同事修改些代码的风格(JAVA的)。。求指引
- 测试面试题集-逻辑推理题
- Eclipse中Java Web开发插件安装
- 【转载】自动化测试:为什么受伤的总是我?
- 企业销售管理现状分析与解决思路(转)
- dategridview代码选中行_使用IntelliJ IDEA进行Java代码调试的技巧
- IPV6:移动光猫吉比特GM228-S 桥接+IPV6教程
- linux创建lvm分区命令,CentOS下LVM的创建与使用
- esp32-qcloud腾通连连编译指南
- 空间统计说历史:奥德修斯的归家之路
- 英语语法(2)----点破主谓宾系表三大句型