首页/文章/ 详情

Workbench平台GUI二次开发入门系列——对话框2

4小时前浏览6

案例使用方法

本入门教程中的所有案例均已测试通过,具体参考入门1中的使用方法。

目录

01 入门1

02 入门2 

03 布局管理1 

04 布局管理2 

05 菜单栏1 

06 菜单栏2 

07 工具栏 

08 基本控件1 

09 基本控件2 

10 基本控件3 

11 基本控件4

12 高级控件1

13 高级控件2

14 对话框1

15 对话框2 

16 拖拽功能 

17 绘图1 

18 绘图2 

19 绘图3 

20 绘图4 

21 进度条 

22 游戏——贪吃蛇

对话框1
case28 FontDialog(字体选择对话框)

功能:打开字体选择夹对话框

本案例中创建按钮,其功能用于触发事件,弹出字体选择窗口。 对应的位置会改变字体。

# encoding: utf-8
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")

from System.Windows.Forms import Application, Form, StatusBar, Label
from System.Windows.Forms import ToolBar, ToolBarButton, FontDialog
from System.Windows.Forms import DialogResult

class IForm(Form):
    def __init__(self):
        self.Text = "FolderBrowserDialog"
        self.text = Label()
        self.text.Parent = self
        self.text.Text = "Winforms tutorial"
        self.LocateText()
        toolbar = ToolBar()
        toolbar.Parent = self
        openb = ToolBarButton()
        toolbar.Buttons.Add(openb)
        toolbar.ButtonClick += self.OnClicked
        self.text.AutoSize = True
        self.Resize += self.OnResize
        self.CenterToScreen()
    def OnResize(self, sender, event):
        self.LocateText()
    def LocateText(self):
        self.text.Top = (self.ClientSize.Height - self.text.Height) / 2
        self.text.Left = (self.ClientSize.Width - self.text.Width) / 2
    def OnClicked(self, sender, event):
        dialog = FontDialog()
        if (dialog.ShowDialog(self) == DialogResult.OK):
           self.text.Font = dialog.Font
           self.LocateText()

Application.Run(IForm())

效果展示:

case29 OpenFileDialog(文件选择对话框)

功能:打开文件选择夹对话框

本案例中创建按钮,其功能用于触发事件,弹出文件选择窗口。 对应的色块会改变颜色。

# encoding: utf-8
import os
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")

from System.Windows.Forms import Application, Form, TextBox
from System.Windows.Forms import ToolBar, ToolBarButton, OpenFileDialog
from System.Windows.Forms import DialogResult, ScrollBars, DockStyle

class IForm(Form):
    def __init__(self):
        self.Text = "OpenDialog"
        toolbar = ToolBar()
        toolbar.Parent = self
        openb = ToolBarButton()
        self.textbox = TextBox()
        self.textbox.Parent = self        
        self.textbox.Multiline = True
        self.textbox.ScrollBars = ScrollBars.Both
        self.textbox.WordWrap = True
        self.textbox.Dock = DockStyle.Fill
        toolbar.Buttons.Add(openb)
        toolbar.ButtonClick += self.OnClicked
        self.CenterToScreen()
    def OnClicked(self, sender, event):
        dialog = OpenFileDialog()
        dialog.Filter = "python files (*.py)|*.py"
        if dialog.ShowDialog(self) == DialogResult.OK:
            os.startfile(dialog.FileName)

Application.Run(IForm())

效果展示:

完整的本地电子版本参阅入门1的其他。


来源:CAE中学生
WorkbenchSystem二次开发电子python游戏
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-03-12
最近编辑:4小时前
CAE无剑
硕士 | 仿真工程师 CAE中学生
获赞 711粉丝 1572文章 272课程 0
点赞
收藏
作者推荐

Workbench平台GUI二次开发入门系列——高级控件2

案例使用方法本入门教程中的所有案例均已测试通过,具体参考入门1中的使用方法。目录01 入门102 入门2 03 布局管理1 04 布局管理2 05 菜单栏1 06 菜单栏2 07 工具栏 08 基本控件1 09 基本控件2 10 基本控件3 11 基本控件412 高级控件113 高级控件2 14 对话框1 15 对话框2 16 拖拽功能 17 绘图1 18 绘图2 19 绘图3 20 绘图4 21 进度条 22 游戏——贪吃蛇高级控件2case24 TreeView1目标:创建一个简单的结构树本案中,创建了一个单层级的结构树,并在选中某个选项时,显示在状态栏。# encoding: utf-8import clrclr.AddReference("System.Windows.Forms")clr.AddReference("System.Drawing")from System.Windows.Forms import Application, Form, StatusBarfrom System.Windows.Forms import TreeView, TreeNode, DockStylefrom System.Drawing import Sizeclass IForm(Form): def __init__(self): self.Text = 'TreeView' tv = TreeView() root = TreeNode() root.Text = 'Languages' child1 = TreeNode() child1.Text = 'Python' child2 = TreeNode() child2.Text = 'Ruby' child3 = TreeNode() child3.Text = 'Java' root.Nodes.AddRange((child1, child2, child3)) #child1.Nodes.AddRange((child2, child3)) tv.Parent = self tv.Nodes.Add(root) tv.Dock = DockStyle.Fill tv.AfterSelect += self.AfterSelect self.s b = StatusBar() self.s b.Parent = self self.Size = Size(220, 220) self.CenterToScreen() def AfterSelect(self, sender, event): self.s b.Text = event.Node.TextApplication.Run(IForm()) 效果展示: case25 TreeView2目标:创建一个多层级的结构树。本案例中以本地文件夹作为目录对象,使其内部的文件夹结构成为结构树。同时创建了4个按钮,功能分别是展开当前,折叠当前;展开全部;折叠全部。# encoding: utf-8import clrclr.AddReference("System.Windows.Forms")clr.AddReference("System.Drawing")from System.Windows.Forms import Application, Form, StatusBarfrom System.Windows.Forms import Button, TreeView, TreeNodefrom System.Windows.Forms import DockStyle, AnchorStylesfrom System.Drawing import Size, Pointfrom System.IO import Directory, DirectoryInfo# 本地目录路径,需根据实际情况变更。HOME_DIR = r'E:\03-Workflows'class IForm(Form): def __init__(self): self.Text = 'Directories' self.Size = Size(400, 400) self.tv = TreeView() self.SuspendLayout() self.tv.Parent = self self.tv.Location = Point(10,10) self.tv.Size = Size(self.ClientSize.Width - 20, self.Height - 200) self.tv.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right self.tv.FullRowSelect = False self.tv.ShowLines = True self.tv.ShowPlusMinus = True self.tv.Scrollable = True self.tv.AfterSelect += self.AfterSelect expand = Button() expand.Parent = self expand.Location = Point(20, self.tv.Bottom + 20) expand.Text = 'Expand' expand.Anchor = AnchorStyles.Left | AnchorStyles.Top expand.Click += self.OnExpand expandAll = Button() expandAll.Parent = self expandAll.Location = Point(20, expand.Bottom + 5) expandAll.Text = 'ExpandAll' expandAll.Anchor = AnchorStyles.Left | AnchorStyles.Top expandAll.Click += self.OnExpandAll collapse = Button() collapse.Parent = self collapse.Location = Point(expandAll.Right + 5, expand.Top) collapse.Text = 'Collapse' collapse.Anchor = AnchorStyles.Left | AnchorStyles.Top collapse.Click += self.OnCollapse collapseAll = Button() collapseAll.Parent = self collapseAll.Location = Point(collapse.Left, collapse.Bottom + 5) collapseAll.Text = 'CollapseAll' collapseAll.Anchor = AnchorStyles.Left | AnchorStyles.Top collapseAll.Click += self.OnCollapseAll self.s b = StatusBar() self.s b.Parent = self self.ShowDirectories(self.tv.Nodes, HOME_DIR) self.ResumeLayout() self.CenterToScreen() def AfterSelect(self, sender, event): self.s b.Text = event.Node.Text def ShowDirectories(self, trvNode, path): dirInfo = DirectoryInfo(path) if (dirInfo != None): subDirs = dirInfo.GetDirectories() tr = TreeNode(dirInfo.Name) if (subDirs.Length > 0): for dr in subDirs: ifnot dr.Name.StartsWith("."): self.ShowDirectories(tr.Nodes, dr.FullName) trvNode.Add(tr) def OnExpand(self, sender, event): self.tv.SelectedNode.Expand() def OnExpandAll(self, sender, event): self.tv.ExpandAll() def OnCollapse(self, sender, event): self.tv.SelectedNode.Collapse() def OnCollapseAll(self, sender, event): self.tv.CollapseAll()Application.Run(IForm()) 效果展示: 完整的本地电子版本参阅入门1的其他。来源:CAE中学生

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈