python tkinter grid布局显示问题求助

python tkinter grid布局显示问题求助,第1张

什么时候使用Grid管理器

grid管理器是Tkinter里面最灵活的几何管理布局器。如果你不确定什么情况下从三种布局管理中选择,你至少要保证自己会使用grid。

当你设计对话框的时候,grid布局管理器是一个非常方便的工具。如果你之前使用pack进行布局的话,你会被使用grid后的简洁而震惊。与适应很多frame来让pack工作不同,在大多数情况下,你只需要将所有控件放置到容器中,然后使用grid将它们布局到任何你想要布局的地方。

参考下面这个例子:

使用pack进行布局的话,你不得不使用一些额外的frame控件,而且还需要花费一些功夫让他们变得好看。如果你使用grid的话,你只需要对每个控件使用grid,所有的东西都会以合适的方式显示。

注意:不要试图在一个主窗口中混合使用pack和grid。

使用grid进行布局管理非常容易。只需要创建控件,然后使用grid方法去告诉布局管理器在合适的行和列去显示它们。你不用事先指定每个网格的大小,布局管理器会自动根据里面的控件进行调节。

from Tkinter import

master = Tk()

Label(master, text="First")grid(row=0)

Label(master, text="Second")grid(row=1)

e1 = Entry(master)

e2 = Entry(master)

e1grid(row=0, column=1)

e2grid(row=1, column=1)

mainloop()

运行如下图所示:

label1占据0行0列,label2占据1行0列,entry1占据0行1列,entry2占据1行1列。

注意:1在使用grid方法时,如果不指定column参数,则默认从0开始。

2没有被使用的行和列号将被忽略,在上面的例子中如果使用10行和20行,则运行效果是一样的。

使用sticky参数

默认的空间会在网格中居中显示。你可以使用sticky选项去指定对齐方式,可以选择的值有:N/S/E/W,分别代表上/下/左/右。如果你想让label靠左显示,你可以设置stricky的值为W。

from Tkinter import

master = Tk()

Label(master, text="First")grid(row=0, sticky=W)

Label(master, text="Second")grid(row=1, sticky=w)

e1 = Entry(master)

e2 = Entry(master)

e1grid(row=0, column=1)

e2grid(row=1, column=1)

mainloop()

运行效果如下图:

你同样可以指定控件跨越一个或者多个网格。columnspan选项可以指定控件跨越多列显示,而rowspan选项同样可以指定控件跨越多行显示。

下面的代码创建了我们最初演示的示意图:

from Tkinter import

master = Tk()

var = IntVar()

Label(master, text="First")grid(sticky=E)

Label(master, text="Second")grid(sticky=E)

e1 = Entry(master)

e2 = Entry(master)

e1grid(row=0, column=1)

e2grid(row=1, column=1)

checkbutton = Checkbutton(master, text='Preserve aspect', variable=var)

checkbuttongrid(columnspan=2, sticky=W)

photo = PhotoImage(file='2qqgif')

label = Label(image=photo)

labelimage = photo

labelgrid(row=0, column=2, columnspan=2, rowspan=2, sticky=W+E+N+S, padx=5, pady=5)

button1 = Button(master, text='Zoom in')

button1grid(row=2, column=2)

button2 = Button(master, text='Zoom out')

button2grid(row=2, column=3)

mainloop()

运行效果如下图:

在这段代码中,有一些细节需要注意:

1 我们没有为左边的两个label控件指定具体的位置,在这种情况下,column将会从0开始,而row将会从第一个没有使用的值开始。

2 我们队checkbutton设置了columnspan参数,所以它会显示在第二行,并占据第0和1列。

3 图像label占用了2行2列,而最后的两个button都只占用了1列。

望采纳

对主表的MasterRowExpanded事件编程。代码大致如下:

void gridView_MasterRowExpanded(object sender, CustomMasterRowEventArgs e)

{

GridView gridViewMaster = sender as GridView;

GridView gridViewDetail = gridViewMasterGetDetailView(eRowHandle, eRelationIndex) as GridView;

gridViewDetailBeginUpdate();

gridViewDetailColumns["BomDetailNoID"]Visible = false;

gridViewDetailColumns["BomDetailNoID"]OptionsColumnShowInCustomizationForm = false;

gridViewDetailEndUpdate();

}

希望对你有用 ;}

master key password

密钥密码

例句

1

If a Master Key is defined for an attachable subscription database, specify the Master Key password using the

如果为可附加的订阅数据库定义了主密钥,请用

2

Returns a row for each database master key password added by using the

存储过程添加的每个数据库主密钥密码返回一行。

3

Database master key, and saves the master key password as the secret in the credential

数据库主密钥创建凭据,并将主密钥密码作为机密内容存储在凭据中。

4

Because this master key is not encrypted by the service master key , a password must be specified when it is opened

由于该主密钥未使用服务主密钥进行加密,因此必须指定密码才能将其打开。

5

But if the master key is encrypted only with a password, it must be explicitly opened

但如果主密钥仅使用密码进行加密,则必须显式打开。

6

Afterward, you must explicitly open the Database Master Key with a password

然后,必须显式打开带密码的数据库主密钥。

用grid布局,布局示例:

#! /usr/bin/env python

# -- coding: utf-8 --

import Tkinter as tk

class TestUI(object):

    def __init__(self, master):

        selfroot = master

        selfcreate_frame()

    def create_frame(self):

        '''

        create frame,left and right

        '''

        selffrm_left = tkLabelFrame(selfroot)

        selffrm_right = tkLabelFrame(selfroot)

        selffrm_leftgrid(row=0, column=0, sticky="wesn")

        selffrm_rightgrid(row=0, column=1, sticky="wesn")

        selfcreate_frm_left()

        selfcreate_frm_right()

    def create_frm_left(self):

        selffrm_left_label = tkLabel(selffrm_left,

                                       text="Test")

        selffrm_left_listbox = tkListbox(selffrm_left)

        selffrm_left_btn = tkButton(selffrm_left,

                                      text="Test")

        selffrm_left_labelgrid(row=0, column=0, padx=5, pady=5, sticky="w")

        selffrm_left_listboxgrid(

            row=1, column=0, padx=5, pady=5, sticky="wesn")

        selffrm_left_btngrid(row=2, column=0, padx=5, pady=5, sticky="wesn")

        for i in range(5):

            selffrm_left_listboxinsert("end", i)

    def create_frm_right(self):

        selffrm_right_canvas = tkCanvas(selffrm_right, bg="white")

        selffrm_right_canvasgrid(row=0, column=0, padx=5, pady=5, sticky="wesn")

if __name__ == '__main__':

    '''

    main loop

    '''

    root = tkTk()

    roottitle("Test")

    TestUI(master=root)

    rootresizable(False, False)

    rootmainloop()

Slave_SQL_Running: No mysql同步故障解决

如果数据不同步可以尝试该资料

mysql> show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: No

Last_Errno: 1062

Seconds_Behind_Master:NULL

原因:

1程序可能在slave上进行了写操作

2也可能是slave机器重起后,事务回滚造成的

解决办法I:

1首先停掉Slave服务:slave stop

2到主服务器上查看主机状态:

记录File和Position对应的值。

mysql> show master status;

+------------------+-----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+-----------+--------------+------------------+

| mysql-bin000020 | 135617781 | | |

+------------------+-----------+--------------+------------------+

1 row in set (000 sec)

3到slave服务器上执行手动同步:

mysql> change master to

> master_host='master_ip',

> master_user='user',

> master_password='pwd',

> master_port=3307,

> master_log_file='mysql-bin000020',

> master_log_pos=135617781;

1 row in set (000 sec)

mysql> slave start;

1 row in set (000 sec)

再次查看slave状态发现:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Seconds_Behind_Master: 0

解决办法II:

mysql> slave stop;

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> slave start;

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3301978.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-02-16
下一篇2024-02-16

随机推荐

  • 伊思的护肤品怎么样

    从粗浅的角度出发去理解,如果来自于伊思的护肤品化妆品品质不好,大家使用了之后没有看到明显的肌肤改变,没有看到很贴服的、很细致的上妆效果,为什么大家还会选择购买伊思旗下的护肤品化妆品呢?所以它的销售业绩就会越来越差,不是吗?从具象的角度出发去

    2024-04-15
    61100
  • 美白身体乳哪个好用效果好

    又到了秀胳膊秀腿的夏天,身体美白的需要也渐渐高了起来。相比其他身体美白的方法,个人认为坚持涂美白身体乳是个很不错的习惯,虽然它不会有立竿见影的效果,但却是更温和更安全的一种方法,还能逐步改善我们的皮肤状态。另外建议在涂抹美白身体乳的同时,也

    2024-04-15
    58900
  • olay水感透白六件套顺序

    Olay水感透白六件套的使用顺序如下:1 玉兰油深层洁肤乳。2 玉兰油莹肌亮肤液。3 玉兰油水感透白透视美白精华露。4 玉兰油水漾动力莹眸走珠精华笔。5 玉兰油水感透白防晒修护凝乳。6 玉兰油轻透倍护隔离防晒液。以上步骤有助于提亮你的肤色,

    2024-04-15
    63700
  • 《开始推理吧》白宇骑机车出场,镜头特写,是不是非常帅气呢?

    《开始推理吧》这档节目已经开播了,白宇也参与了这档综艺节目的录制,在出场的时候白宇也是骑着机车出场,特别的帅气,非常酷炫的一个出场,镜头特写非常的完美,白宇的这个造型确实非常的帅气,这个出场也惊艳到了很多人,没有想到白宇还会骑机车,这也是特

    2024-04-15
    38600
  • 屈臣氏卖假货吗?你买到假货了吗?

    屈臣氏确实有假货的!我第一次到屈臣氏买东西时。买了很多东西。办了张会员卡。然后有个换购。原价239元的阿迪达斯香水。只要在添99元就可以换到。我当时很纠结。到底是真的还是假的?不过99元也不多。就换了。至今没用。这个说实话我真不知道是真是假

    2024-04-15
    40700
  • 牡丹江医学院复试名单

    2020年拟招生的牡丹江医学院复试名单如下:1、本科计算机科学与技术专业:张璐、陈文燕、刘小涛、刘鹏程、杨 冰、张小芳、王晓阳、李泽恒、吴欣然、董云芳、郭晓东、杨芳芳、汤宝华、刘 文、金玉梅、张雨萌、李新宇、李 健、刘建伟、唐晓宁、宋浩然、

    2024-04-15
    42600
  • 凝露,乳液,保湿露,面霜,精华素有什么区别?

    凝露,乳液,保湿露,面霜,精华素有什么区别以植物医生为例。从适用人群来解释:乳液适合混合型皮肤的人用,春秋干燥的季节用来补水效果不错。而凝露多是无油配方,喜欢出油的MM们使用效果会很好。所以爱出油的妹子们选择凝露来调节肌肤的水油平衡,是最好

    2024-04-15
    40500

发表评论

登录后才能评论
保存