我们将使用PyGTK 3.0编写一个小程序,该程序也适用于PyGTK 3.4。 这个小小的GUI将教您如何将程序分为两个或更多文件。
您可以在新的PyGTK 3上访问SebastianPölsterl的教程,这是新的教程,我留下了链接:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
这是塞巴斯蒂安的博客。
塞巴斯蒂安(Sebastian)对本教程的批评是,它没有讲授如何将程序分为多个部分或几个文件,如果他展示了如何使用PyGTK 3的示例,那就太好了。
所有大型程序和复杂程序都分为许多文件,并且文件甚至放置在其他目录中,即它们位于不同的文件夹中。
让我们从一个小例子开始:
这是一个名为gui.py的文件中的编写代码。 我们打开Gedit文本编辑器或最常用的编辑器,我们复制下面的代码并将其保存为gui.py
从gi.repository导入Gtk类gui():def on_open_clicked(自身,按钮):打印“ \”打开\“单击按钮” def on_close_clicked(自身,按钮):打印“关闭应用程序” Gtk.main_quit()def __init__ (self):self.window = Gtk.Window()self.window.connect('delete-event',Gtk.main_quit)self.box = Gtk.Box()self.window.add(self.box)self。 button = Gtk.Button(label ='Open')self.button.connect(“ clicked”,self.on_open_clicked)self.box.pack_start(self.button,True,True,0)self.button = Gtk.Button( label ='Close')self.button.connect(“ clicked”,self.on_close_clicked)self.box.pack_start(self.button,True,True,0)self.window.show_all()Gtk.main()如果__name__ =='__main__':gui = gui()
def on_open_clicked(自己,按钮):打印“ \”打开\“单击按钮”
单击打开按钮后,该功能会在终端中激活。 激活它的信号是:
self.button.connect(“ clicked”,self.on_open_clicked)def on_close_clicked(self,button):打印“关闭应用程序” Gtk.main_quit()
当我们单击关闭按钮时,将激活该功能。
关闭我们运行的程序。
激活它的信号是
gi.repository import Gtk中的self.button.connect(“ clicked”,self.on_close_clicked)###我们调用PyGTK库###类gui():###名为gui的类定义是主类# ##
小部件的声明:小部件是由我们使用的GUI库预先定义的程序。 例如,小部件是按钮,窗口,框等。 这些是我们在程序中声明的小部件。
self.window = Gtk.Window()###窗口### self.box = Gtk.Box()### box #### self.button = Gtk.Button(label ='Open')### #打开按钮#### self.button = Gtk.Button(label ='Close')####关闭按钮#### self.window.add(self.box)####该盒子包含在名为window #### self.box.pack_start的窗口(self.button,True,True,0)#####该按钮包含在名为box ### self.window.show_all()##的框中#我们显示整个窗口### gui = gui()###创建gui对象####
我们将程序放在桌面上的简单文件夹中
我们用终端打开文件夹,在我的情况下,我使用Linux Mint 14中的Nemo。
为了进行编译,我们在终端python gui.py中放入
看到图片。
现在我们可以看到使用PyGTK 3库创建的小程序或新的小部件
这是一个带有两个按钮的简单窗口。
现在,我们将程序分为三个部分,然后剩下三个文件的代码。
第一个gui.py文件
从gi.repository导入Gtk从销毁导入从io导入io类gui(destroy,io):def __init __(self):self.window = Gtk.Window()self.window.connect('delete-event',Gtk .main_quit)self.box = Gtk.Box()self.window.add(self.box)self.button = Gtk.Button(label ='Open')self.button.connect(“ clicked”,self.on_open_clicked) self.box.pack_start(self.button,True,True,0)self.button = Gtk.Button(label ='Close')self.button.connect(“ clicked”,self.on_close_clicked)self.box.pack_start( self.button,True,True,0)self.window.show_all()Gtk.main()如果__name__ =='__main__':gui = gui()
第二个io.py文件
io类:def on_open_clicked(自身,按钮):打印“ \”打开\“单击了按钮”
第三个文件destroy.py
从gi.repository导入Gtk类销毁:def on_close_clicked(自身,按钮):打印“关闭应用程序” Gtk.main_quit()
在本例中,我们将这三个文件放在同一文件夹中,该文件夹称为简单划分。
编译三个文件。 我们用终端打开文件夹,然后将其放回终端
python gui.py
对gui.py代码的修改
从destroy import destroy ###语句导入我们的文件destroy.py ###从io import io ###语句导入我们的文件io.py ### class gui(destroy,io):####到class主要我们添加子类destroy和io ####
你可以看到这句话
def on_open_clicked(自己,按钮):打印“ \”打开\“单击按钮”
它不在gui.py中,而是在io.py文件中
句子
def on_close_clicked(自己,按钮):
打印“关闭申请”
Gtk.main_quit()
它位于destroy.py文件中
因此,我们可以将一个程序同时划分为多个文件,这些文件位于不同的目录中。
另一方面,Python是自由软件的支柱,它适用于GTK 3.6 /3.8,其名称为PyGTK。 Python对KDE的改编称为PyQT。
Python适用于Mac OS和WINDOWS。
我希望这个PyGTK3迷你教程对您有所帮助。 他们可以提出所有想要的建设性批评。
我也知道一些Gtk 3.4 /3.6和Vala GTK 3.4 / 3.6。
http://www.youtube.com/watch?v=9ckRn_sx8CE
最后,KDE用户为没有为KDE编写迷你教程而道歉。
在kde中,我更喜欢使用kdevelop(我认为这就是所谓的名称)来轻松创建gui,但是我仍然很难找到使其发生的过程x事情:'(
非常适合使用Python的我们这些人:D!
的问候!
您好,我已经关注这个社区很长时间了,我不确定这是我第一次发表评论还是在before之前发表过评论(我不太愿意在网上写评论)。 事实是,我这样做是为了向Elav和KZKG ^ Gaara提出建议,我认为添加一个用于语法着色的插件是一个好主意,因为最近我看到了更多使用不同编程语言编写代码的帖子。 我知道有很多插件,但是由于我不是wordpress用户,所以我没有尝试过任何插件,所以我让您考虑一下请求的可行性。 我借此机会向其他读者询问他们对此想法的看法,因为我知道有些人更喜欢在没有任何装饰的情况下阅读代码。 我对此表示抱歉,并由于某种原因被拒绝,因为我不记得看到有关该主题的讨论。
事实是,我想选择对语法进行着色以突出显示编程语言的代码。
这将帮助想要学习编程语言的用户。
但是,我对论坛也很满意,我们可以一起讨论和学习。
GNU Emacs更舒适,因为至少您必须选择要使用的编程语言检查器(如果您不希望处理器拥有更多重量,请使用GNU Nano并尽享极简主义)。
Elio 我们正在谈论 WordPress。在博客上实现 Desde Linux。它没有为帖子字母着色的功能。
哦,对不起。
Naaa emacs对于拥有84根手指XD ..,普通人,文本伴侣,sublimetext或记事本++ xd的人来说非常舒适
令人难以置信的是您还没有学会打字,这是能够很好地处理GNU Emacs及其键盘快捷键所必需的。 此外,它的GUI使您可以轻松使用其菜单(可以在Windows中使用,但不建议在常规模式下使用命令提示符模式来执行它,这样win32不会抵制您的脚本)。
非常酷的教程。 但是顺便说一下,python源代码没有编译,它是一种解释语言。
可以将其编译为伪代码。 它不是机器语言,而是代表解释器某些内容的字节,但是该过程也称为编译。 从这个意义上讲,可以说已经编译了一些东西。
也许最好学习pytgk2,因为Windows可用的最新版本是2.24。 系列3的缺失很明显。 坏话说,gnome破坏了每个新版本中的所有api。
我用GTK 3.4 / 3.6编写了一个样机,事实是它们破坏了您的耐心和头脑,您必须重写代码,现在我明白了Linux Mint人们为什么抱怨GTK和GNOME项目。
对于MINT的那些人,我同意GTK 2.4。
好的教程和参考。
由于已经放入了代码,因此只是一个细节,在Python中,缩进是必需的,示例代码中应遵循缩进。
的问候!
您能解释一下Python中的强制性标识由什么组成吗?我告诉您实话,我从未听说过,我不习惯英语的PyGTK 2/3论坛,也许我忽略了它。
在Python中,您不像在C中那样使用键,也不像在Pascal中那样使用开始/结束块,但是通过给代码缩进可以理解一切。 即,块被认为是缩进的。 这是我特别喜欢的功能。 您避免编写键之类的东西。
我只是不喜欢,放置两个小键或一个std :: endl;比查看xd行是否被制表更简单
:p您的编程老师会为您设置0。 或更糟糕的是,他们会解雇您。 最重要的是代码可读性强
以大括号结尾,它使我对XD的可读性大大提高。
认真吗?
int main(int argc, char *argv[]){program_name = argv[0];while ((argc > 1) && (argv[1][0] == '-')) {switch (argv[1][1]) {case 'v':verbose = 1; break;case 'o':out_file = &argv[1][2];break;case 'l':line_max = atoi(&argv[1][2]);break;default:fprintf(stderr,"Bad option %s\n", argv[1]);usage();}++argv;--argc;} if (argc == 1) {do_file("print.in");} else {while (argc > 1) {do_file(argv[1]);++argv;--argc;}}return (0);}
你看? 没有缩进,它不是很好理解。 这很容易。 对于更复杂的代码,只有编译器可以理解。 事实是,既然您必须缩进(以便人类理解代码),为什么会多余并使用分隔符? 缩进就足够了,就是这样。
当然,什么都不会被理解,因为您不尊重c / c ++程序的良好编写规则。 您所做的一切对任何事物(例如,将一个函数嵌套在另一个函数内部的另一个函数内部)都有效,那么如果您能够理解,那么我想与您讨论xd。
顺便说一下,通过两种外观,该代码很容易理解xD
我这样做的目的是向您显示,即使没有缩进,即使缩进了,也很难理解任何代码。 因此,您有2条规则:缩进并包含定界符。 但这是多余的。 在Python中,此类代码根本不会被解释器接受。 而且您只有一条规则:缩进。 简单。
但是,嘿,每个人都有自己的品味。
两者都很好,可以缩进和不缩进,在我看来我更喜欢分号样式或红宝石样式,类似于python,但缩进不是必需的。
这是更好理解的方式:P:
echo'int main(int argc,char * argv []){program_name = argv [0]; while(((argc> 1)&&(argv [1] [0] =='-'))){开关(argv [ 1] [1]){情况'v':详细= 1; break; case'o':out_file =&argv [1] [2]; break; case'l':line_max = atoi(&argv [1] [2]); break;默认值:fprintf(stderr,»错误选项%s \ n»,argv [1]);用法();} ++ argv; –argc;} if(argc == 1){do_file(“ print.in”);}其他{while(argc> 1 ){do_file(argv [1]); ++ argv; –argc;}}返回(0);}'| perl -p -e's / \ {/ {\ n \ t / g; s / \; / \; \ n \ t / g; s / \ t \} / \} / g;'
问候😀
我认为Carlos意味着代码出处没有缩进。 复制和粘贴将无法正常工作。 创建帖子时我不知道标签是否存在
输入语言代码。 如果他们放不存在的话,这将是很好的。
我已经看到了问题所在:CODE标记删除了所有空格和制表符(它不应该这样做!!)但是,如果在其上放一个nbsp,则代码看起来不错。 A0以十六进制表示(十月为160),尽管我认为这可能取决于字体(我不知道)。 如果使用它,它会像这样显示:
def fib(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a+b
在我的测试中,它看起来不错,但是在发布答案时我没有预览(应该有!!!)如果不出来,那不是我的错fault
查看SebastianPölsterl在其PyGTK 3教程中提供的示例,Sebastian不会放置标签。
范例:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example
您可以查看Sebastian的所有教程。
我不知道你想表达什么意思。 我的意思是,在这里,在帖子中,无法使用HTML标记“ CODE”,以便您将其作为代码放置,并且可以很容易地缩进。 在您所引用的页面上,如果您查看页面源代码,将会看到它不使用CODE而是使用其他HTML分隔符。
这不是违反您所输入的代码,而是指出此站点的发布系统中的缺陷。 也许管理员可以解决。
当我谈论标签时,我显然是在谈论HTML,而不是Python。 无论如何,如果您在Python中不加缩进地放置代码,那将是行不通的。 如果有新手来,并按照本文中显示的代码复制并尝试运行它,则他将失败。 当您是新手时,您可能会感到沮丧。 再说一次,这不是你的错。 在我之前的回答中,我所做的就是提供了一种从用户级别解决问题的方法。
完全正确,我应该上传照片而不是复制代码。
展示如何在PyGTK 3中正确排序语句。
要使用python编程,我建议将Eclipse与PyDev插件或Pychar m一起使用
如上所述,这就是我不喜欢python的原因,因为它存在缩进问题。 如我们所见,进行复制和粘贴将不起作用,其他语言如C,Java,PHP等不会发生这种情况。
易读性,我们应用了代码美化器(例如 http://indentcode.net/ )并准备好了,
丑陋的东西是固定的,但是如果没有缩进并且逻辑改变了,我们听起来...
我是PyGTK的新手,是否可以与该语言的Shell脚本进行交互?
感谢您的教程。
问候。