在python中窗口的宽度是由什么来表示

在python中窗口的宽度是由什么来表示,第1张

我们先创建一个tk窗口#-- coding:utf-8 --import tkinter#小编这里是python3,使用python2的小伙伴把tkinter换成Tkinter即可,否则报错哦win = tkinterTk()winmainloop()这样我们就创建了一个tk窗口,尽管这个窗口什么都没有。

我们要用到的方法是tk对象提供的winfo_width和winfo_height,从字面上我们都可以理解:winfo_width获得窗口的宽度,winfo_height获得窗口的高度。以上两个方法都是无参方法,通过返回值我们可以获得窗口的宽高。OK,我们插入代码print("当前窗口的宽度为",winwinfo_width())print("当前窗口的高度为",winwinfo_height())

未经芝士统回答便允许不得转载本何文内容,否则将视有为侵可权

这里很多小伙伴就会问了,为什么是1?窗口的宽高绝对不是1。没错,但是程序并没有做错,我们只是少了点什么?我们需要刷新窗口数据,如果小伙伴经常使用tk这个图形库,就会知道,我们使用winfo_width和winfo_height得到的宽高其实是tk初始化时的一个值。此时我们调用update方法,刷新win窗口。winupdate()快看,是不是成功获得了窗口的宽高?

我们可以自定义窗口大小来看数据是否正确。例如小编这里设置窗口大小 = 100 x 100,即宽100px高100pxwingeometry("100x100")这里可能又有小伙伴会问了,为什么宽度又出错了?其实很简单,因为tk帮我们创建了窗口装饰器,装饰器有以下几个部分:图标、标题、最大化、最小化和关闭按钮这些装饰器占据了16个px,其实是15个,还有1个px像素点是作为窗口和装饰器之间的距离红色标记部分所有代码为:#-- coding:utf-8 --import tkinterwin = tkinterTk()wingeometry("100x100")winupdate()print("当前窗口的宽度为",winwinfo_width())print("当前窗口的高度为",winwinfo_height())winmainloop()

pltfigure('测试')     # 字符串或数字 作为figure窗口的标题

pltplot(x, y)

pltshow()

---

Python 373 可行。

给你一个思路。用 python 的 win32gui 可以枚举所有窗口句柄,想办法获取窗口句柄,然后通过 GetWindowText() 方法来获取窗口的标题,也就是结果所在的窗口句柄。

我用WIN32试了一下,我是hook了鼠标所在的句柄,但当鼠标指向结果时,结果的窗口句柄获取不到,只能获取到结果窗口的上一个窗口的句柄(也就是你图中的00280756的句柄),但可以通过枚举子窗口来获取(也就是枚举你中的002F0854句柄),然后经过一系列匹配和判断最终得到结果的值。

# encoding: gb2312

import win32gui

def _MyCallback( hwnd, extra ):

    hwnds = extra

    hwndsappend(hwnd)

def _CallBack(hwnd, extra):

    value, m_index = extra

    if win32guiGetClassName(hwnd) == 'Static':

        m_indexappend(None)

    

    if len(m_index) == 4:

        valueappend(win32guiGetWindowText(hwnd))

def TestEnumWindows():

    windows = []

    results = []

    win32guiEnumWindows(_MyCallback, (windows))

    i = 0

    for hwnd in windows:

        if win32guiGetClassName(hwnd) == 'CalcFrame':

            m_index = []

            win32guiEnumChildWindows(hwnd, _CallBack, (results, m_index))

        i += 1

    for result in results:

        print '计算器的结果为:' , result

TestEnumWindows()

这样更好一些,可能有些特征不同。我是枚举所有窗口,然后获取窗口的classname为CalcFrame的窗口,然后再枚举CalcFrame的子窗口,然后判断第4个出现的Static控件就是结果的控件。

hwnd=win32guiFindWindow('QWidget',None)

print 'hwnd:',hwnd

timesleep(1)

win32guiEnableWindow(hwnd,True)

win32guiSetForegroundWindow(hwnd)

例子:

代码如下:

#!/usr/bin/python

# -- coding: GBK --

# simplepy

import wx

app = wxApp()

frame = wxFrame(None)

frameShow()

appMainLoop()

例2,

代码如下:

#!/usr/bin/python

告诉程序 python 解释器的路径,只是在 linux 系统下有用,在 Windows 下写上这行代码不起作用,但是也没问题

# -- coding: GBK --

告诉 python 系统字符编码,这样我们就可以在程序中使用中文汉字了,如果没有这一行就是乱码。Windows 下是 GBK,Linux 下是UTF-8

app = wxApp()

初始化应用程序

frame = wxFrame(None)

frameShow()

创建一个 Frame (就是窗体),并显示出来。

appMainLoop()

应用程序进入消息循环

Frame 其实就是窗体,前面生成窗体时没有给他任何参数,只生成了一个默认的窗体,生成默认窗体的代码:

frame = wxFrame(None)

其实 wxFrame 可以传入很多参数,由此来控制生成窗体的样式和行为,现在来看看 Frame构造函数的原型:

__init__(self, Window parent, int id=-1, String title=EmptyString,

Point pos=DefaultPosition, Size size=DefaultSize,

long style=DEFAULT_FRAME_STYLE, String name=FrameNameStr)

参数1:parent

当前窗口的父窗口,如果当前窗口是top-level window的话,则parent=None,如果不是顶层窗口,则它的值为所属frame的名字

参数2:id

窗体编号。如果设置为-1,则系统自动给他分配一个编号。默认为-1

参数3:title

窗体的标题栏,即Caption。默认为空。

参数4:pos

窗体的位置坐标。默认值为(-1,-1),则窗体的位置由系统决定。

参数5:size

窗体的大小。默认值为(-1,-1),则窗体的大小由系统决定。

参数6:style

窗体样式。默认值为 DEFAULT_FRAME_STYLE

默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合:

wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER |

wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN

它包括最小化按钮、最大化按钮、系统菜单、标题栏、关闭按钮、可变大小等等。您也可以根据自己的需求改变样式,具体请参照帮助。

参数7:name

窗体名称。

可以看到,7个参数中6个都有默认值,只有第一个参数 parent 需要设置一下,所以一个最简单的窗体就是:

Python代码 收藏代码

frame = wxFrame(None)

窗体标题:

Python代码 收藏代码

frame = wxFrame(None,title="Hello World")

位置和大小:

Python代码 收藏代码

frame = wxFrame(None,title="世界你好",size=(300,150),pos=(200,200))

样式一:只有一个光秃秃的标题栏

Python代码 收藏代码

frame = wxFrame(None,style=wxCAPTION)

样式二:只有客户区,没有标题栏,也不能改变大小

Python代码 收藏代码

frame = wxFrame(None,style=0)

样式三:只有一个关闭按钮,不能改变大小

代码如下:

frame = wxFrame(None,style= wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX)

wxDEFAULT_FRAME_STYLE :这是每个窗口的缺省风格,包含标题、可调节大小的边框,最大最小化按钮、关闭按钮和系统菜单。

wxCAPTION :在框架上增加一个标题栏,它显示该框架的标题属性。

wxCLOSE_BOX :指示系统在框架的标题栏上显示一个关闭框,使用系统默认的位置和样式。

WxFRAME_ON_TOP : 置顶窗口

w xFRAME_SHAP ED :用这个样式创建的框架可以使用SetShape()方法去创建一个非矩形的窗口。

wxFRAME_TOOL_WINDOW :通过给框架一个比正常更小的标题栏,使框架看起来像一个工具框窗口。在Windows下,使用这个样式创建的框架不会出现在显示所有打开窗口的任务栏上。

wxMAXIMIZE_BOX :指示系统在框架的标题栏上显示一个最大化框,使用系统默认的位置和样式。

wxMINIMIZE_BOX :指示系统在框架的标题栏上显示一个最小化框,使用系统默认的位置和样式。

wxRESIZE_BORDER :给框架增加一个可以改变尺寸的边框。

wxSIMPLE_BORDER :没有装饰的边框。不能工作在所有平台上。

wxSYSTEM_MENU :增加系统菜单(带有关闭、移动、改变尺寸等功能)和关闭框到这个窗口。在系统菜单中的改变尺寸和关闭功能的有效性依赖于wxMAXIMIZE_BOX, wxMINIMIZE_BOX和wxCLOSE_BOX样式是否被应用。

wxFRAME_EX_META :如果时在 MacOS 中,这个属性用于是否显示“金属风格”

wxFRAME_EX_CONTEXTHELP :是否有联机帮助按钮。

wxFRAME_FLOAT_ON_PARENT :窗口是否显示在最上层,与 wxSTAY_ON_TOP 不同,它必须有一个父窗口。

1、首先双击打开pycharm开发工具,在已新建python项目中新建python文件。

2、使用fromimport方式导入tkinter,一种是python2中的方式,另一种是python3的。

3、接着创建一个Tk对象,这个对象代表一个窗口。

4、利用title属性设置窗口的标题内容,这里设置为新增用户。

5、调用pack进行布局,使用mainloop用于显示窗口。

6、保存代码并运行,结果出现了报错,提示python2的写法有问题;去掉python2的写法,然后再次保存运行,可以看到d出一个窗口就完成了。

以上就是关于在python中窗口的宽度是由什么来表示全部的内容,包括:在python中窗口的宽度是由什么来表示、python中怎么实现改figure标题的功能、用python win32 获得计算器里的计算结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9777812.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存