动态改变屏幕设置 分辨率、颜色等。

动态改变屏幕设置
'- 定义
Private Declare Function lstrcpy _
Lib "kernel32" Alias "lstrcpyA" _
(lpString1 As Any, lpString2 As Any) _
As Long
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private Declare Function _
ChangeDisplaySettings Lib _
"User32" Alias "ChangeDisplaySettingsA" (_
ByVal lpDevMode As Long, _
ByVal dwflags As Long) As Long
'- 函数
Public Function SetDisplayMode(Width As _
Integer,Height As Integer, Color As _
Integer) As Long
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_BITSPERPEL = &H40000
Dim NewDevMode As DEVMODE
Dim pDevmode As Long
With NewDevMode
.dmSize = 122
If Color = -1 Then
.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
Else
.dmFields = DM_PELSWIDTH Or _
DM_PELSHEIGHT Or DM_BITSPERPEL
End If
.dmPelsWidth = Width
.dmPelsHeight = Height

If Color <> -1 Then
.dmBitsPerPel = Color
End If
End With
pDevmode = lstrcpy(NewDevMode, NewDevMode)
SetDisplayMode = ChangeDisplaySettings(pDevmode, 0)
End Function
例子调用:改变为 640x480x24位:
i = SetDisplayMode(640, 480, 24)
如果成功返回 0 。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用QSS(Qt Style Sheets)来设置按钮的圆角,并且可以自适应屏幕分辨率变化。 例如,你可以在QSS设置按钮的border-radius属性来实现圆角效果。具体做法如下: 1. 首先,创建一个QPushButton对象。 ```python button = QPushButton('Button') ``` 2. 使用setStyleSheet方法为QPushButton设置QSS样式。 ```python button.setStyleSheet(''' QPushButton { border-radius: 10px; background-color: #0078d7; color: #ffffff; font-size: 16px; padding: 10px 20px; } QPushButton:hover { background-color: #005ea2; } ''') ``` 在上面的代码,我们设置了QPushButton的border-radius属性为10px,这样就实现了圆角效果。同时,我们还设置了QPushButton的背景颜色、字体颜色、字体大小、内边距等样式。另外,我们还为QPushButton设置了鼠标悬停时的样式。 3. 为了让圆角效果自适应屏幕分辨率变化,我们可以使用窗口resizeEvent事件来动态计算按钮的圆角半径。 ```python class MyWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建按钮 self.button = QPushButton('Button', self) self.button.setStyleSheet(''' QPushButton { background-color: #0078d7; color: #ffffff; font-size: 16px; padding: 10px 20px; } QPushButton:hover { background-color: #005ea2; } ''') # 设置窗口布局 layout = QVBoxLayout(self) layout.addWidget(self.button) def resizeEvent(self, event): # 计算按钮的圆角半径 width = self.width() height = self.height() min_dim = min(width, height) radius = min_dim / 10 # 设置按钮的圆角样式 qss = 'QPushButton {{ border-radius: {}px; }}'.format(radius) self.button.setStyleSheet(qss) ``` 在上面的代码,我们重写了QWidget的resizeEvent事件,当窗口大小发生变化时,计算出按钮的圆角半径,并重新设置QPushButton的QSS样式。这样,即使屏幕分辨率发生变化,按钮的圆角效果也会自动适应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值