deepin linux 安装wxpython
程序员文章站
2022-05-27 16:14:29
...
deepin linux 安装wxpython
deepin 很难直接安装wxpython,安装后也可能会有各种各样的bug。为了防止这些问题产生,我们还是自己编译吧。
环境:
deepin V15.11
gcc 6.3.0
Python 3.5(anaconda)与系统内置的python2.7
首先需要安装有关的
编译环境配置
sudo apt-get install libgtk-3-dev build-essential checkinstall
下载有关安装包
wxpython:
https://pypi.tuna.tsinghua.edu.cn/packages/cb/4f/1e21d3c079c973ba862a18f3be73c2bbe2e6bc25c96d94df605b5cbb494d/wxPython-4.1.0.tar.gz
wxwidgets:
https://download.csdn.net/download/bestgonghuibin/9514306
需要下载wxWidgets和wxpython安装包。下载后无需选择路径,直接在下载路径下解压即可。
显示如下:
编译
### 编译和链接wxwidgets
# 编译wxwidgets并且安装
cd ./wxWidgets-3.1.0/
./configure --with-gtk
make
sudo make install
# 到这一步就已经安装好了。接下来要建立符号链接。
cd /usr/lib
Create a symbolic link to the library:
sudo ln -s /usr/local/lib/libwx_gtk3u_core-3.1.so.0.0.0
编译与源码安装wxPython
cd ./wxPython-4.1.0
# 切换路径到文件夹之后就可以安装了。
# 如果是给系统自带的python安装,那么就这样装。
python setup.py build
sudo python setup.py install
# 如果是给自己安装的python(比如名叫python3.6)安装,那么如此:
python3.6 setup.py build
sudo python3.6 setup.py install
# 如果是给anaconda里面python(比如名叫scienv)安装,那么如此:
conda activate scienv
python setup.py install # 不用加sudo!否则就成给系统python安装了!!!
尝试源码:
import wx
class MultiTextFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,"Example For MultiTextCtrl",
size=(300,250))
panel=wx.Panel(self,-1)
#普通多行文本输入框
multiLabel=wx.StaticText(panel,-1,"Multi-Line:")
multiText=wx.TextCtrl(panel,-1,"Here we go\n\n\ntest",
size=(200,100),
style=wx.TE_MULTILINE)
multiText.SetInsertionPoint(0)
#丰富式样的多行文本输入框
richLabel=wx.StaticText(panel,-1,"Rich-Label:")
richText=wx.TextCtrl(panel,-1,
"如果系统支持的话\n\nThis is a diff font",
size=(200,100),
#创建丰富文本控件
style=wx.TE_MULTILINE|wx.TE_RICH2)
richText.SetInsertionPoint(0)
#设置richText控件的文本样式
richText.SetStyle(2,6,wx.TextAttr("white","black"))
points=richText.GetFont().GetPointSize()
#创建一个字体样式
f=wx.Font(points+3,wx.ROMAN,wx.ITALIC,wx.BOLD,True)
#用创建的字体样式设置文本样式
richText.SetStyle(8,14,wx.TextAttr("blue","black",f))
#将上边俩文本框用Sizer管理布局
sizer=wx.FlexGridSizer(cols=2,vgap=6,hgap=6)
#AddMany方法添加的一定是一个列表list
sizer.AddMany([multiLabel,multiText,richLabel,richText])
panel.SetSizer(sizer)
class MyApp(wx.App):
def __init__(self):
#重构__init__方法,将错误信息重定位到文件中;
#默认redirect=True,输出到StdOut或StdError;
#为防止程序因错误一闪而过无法捕捉信息,可在
#控制台中使用python -i example.py来运行程序。
wx.App.__init__(self,redirect=False,filename=r"C:\Runlog.txt")
def OnInit(self):
frame=MultiTextFrame()
frame.Show(True)
return True
def main():
app=MyApp()
app.MainLoop()
if __name__=="__main__":
main()
推荐阅读
-
深度操作系统deepin 20.4发布:升级Linux 5.15内核
-
phpmyadmin: linux学习篇-使用apt-get方式安装LAMP包括phpmyadmin
-
Linux服务器开发环境搭建 Nginx+PHP+MongoDB linux 连接mongodb mongodb安装教程 mongod
-
linux下php gd 库的安装步骤
-
Linux服务器安装tomcat、JDK、SVN等常用开发软件总结
-
Linux下查看MySQL的安装路径
-
Goland 的安装及激活教程(window、linux下安装)
-
Linux下的Nginx的安装详解
-
linux 下安装MySQL 5.6(RPM方式)_MySQL
-
数据库学习之--Linux下Mysql源码包安装