CheckBox替代传统Frame/GroupBox实现技术研究

版权申诉
0 下载量 142 浏览量 更新于2024-11-08 收藏 31KB ZIP 举报
资源摘要信息: "check_frame.zip_GRoupBox_check box_checkbox_group box" 在这个文件包中,我们可以看到一些文件名含有“ChkFrame”和“CheckFrm”等关键字,这表明这个压缩包可能与一个用于Windows平台的GUI程序有关,特别是在使用MFC(Microsoft Foundation Classes)开发环境中。文件名中的“.aps”,“.clw”,“.cpp”,“.h”,“.dsp”,“.dsw”,“.frm”等扩展名暗示了这是旧式的Visual C++项目文件。下面是对每个文件名和相关知识点的详细说明: 1. ChkFrame.aps:这是一个应用程序资源脚本文件(Application Resource Script),通常包含了资源定义,如对话框、菜单、字符串等。在这里,它可能包含有关CheckBox作为GroupBox标题替代的资源定义。 2. ChkFrame.clw:这是一个类向导文件,用于在Visual C++开发环境中定义类成员变量和函数的映射信息。 3. ChkFrameDlg.cpp 和 ChkFrameDlg.h:这两个文件属于同一个对话框类。cpp文件包含该对话框的实现代码,而.h文件包含了类的声明。在这里,很可能展示了一个自定义的对话框,其中使用CheckBox来替代传统GroupBox的标题。 4. CheckFrm.cpp 和 ChkFrame.h:这两个文件可能定义了一个名为CheckFrm的窗口类,其中包含了在框架窗口中实现CheckBox功能的代码。ChkFrame.h头文件可能包含了该类的接口定义。 5. ChkFrame.cpp:这个文件可能包含主应用程序框架的实现代码。在这里,代码可能是用来展示如何通过程序逻辑使用CheckBox来实现GroupBox标题的功能。 6. StdAfx.cpp 和 StdAfx.h:这两个文件通常是为了预编译头文件和预编译对象而存在。StdAfx.h可能包含了程序中常见的头文件引用,以减少编译时间,而StdAfx.cpp则包含了这些头文件的编译实例。 7. ChkFrame.dsp 和 ChkFrame.dsw:这两个文件是Visual C++项目文件,用于描述项目的配置和工作空间设置。.dsw文件表示旧版的Visual Studio工作空间文件,而.dsp文件表示旧版的项目文件。 在知识点方面,我们可以提炼以下几点: - CheckBox和GroupBox是GUI编程中常用的两种控件。GroupBox用于将相关控件组织在一起,形成分组效果,通常以一个标题和边框的形式出现。CheckBox是用户可进行勾选操作的控件,通常用于选择或确认某个选项。 - 在某些界面设计中,可能需要简化界面元素以提高用户交互的简洁性,使用CheckBox来替代GroupBox的标题就是一种尝试。这样做的好处是减少界面元素数量,可能使得界面更加清爽,但可能会牺牲一些用户对分组概念的直观理解。 - 在MFC应用程序中,通过重载某些函数,如WM_NOTIFY消息处理函数,可以在运行时动态地改变GroupBox的外观,使其标题变为CheckBox,并响应用户点击事件。 - 这种替代实现需要对MFC框架有较深的理解,包括消息映射机制、控件事件处理等。实现者需要在适当的位置编写代码,以确保CheckBox能够正确地反映GroupBox的状态,并在需要时能够切换GroupBox的显示/隐藏状态。 - 文件中的“ChkFrame”前缀表明开发者可能为这个项目创建了一个自定义类,这涉及到对MFC类继承和扩展的编程技巧。开发者可能在这个类中添加了特定的功能来支持CheckBox替代GroupBox标题的逻辑。 - 文件的命名和组织遵循了旧版Visual C++项目和MFC应用程序的标准约定。了解这些约定有助于开发者更好地维护和扩展旧有的项目代码。 通过上述文件的分析,我们可以看出这个项目致力于实现一种用户界面的创新,即将原本用于选择操作的CheckBox控件用作界面布局的分组标题,这样做可以为某些特定应用场景提供一种新的交互方式。
152 浏览量

import sys import threading import time from PyQt5.QtWidgets import * from PyQt5 import uic import pandas as pd import random # import pyqtgraph as pg import matplotlib.pyplot as plt from PyQt5.QtWidgets import QGroupBox from PyQt5 import QtWidgets from login_4 import Ui_CK from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas # df = pd.read_excel('shu.xlsx') class MyWindow(QWidget and QMainWindow,Ui_CK): def __init__(self): super().__init__() self.init_ui() groupbox = QGroupBox('Title',self) # self.plot = pg.PlotWidget(enableAutoRange=True) # self.ui.verticalLayout.addWidget(self.plot) # self.curve = self.plot.plot() #self.ui = uic.loadUi("./login_4.ui") def init_ui(self): print('1.1') try: self.ui = uic.loadUi("./login_4.ui") #print(threading.current_thread()) #print(self.ui.__dict__) # print(self.ui.label) # print(self.ui.label.text()) # 查看ui文件中有哪些控件 # 提取要操作的控件 self.user_name_qwidget = self.ui.lineEdit # 单位输入框 self.password_qwidget = self.ui.lineEdit_2 # 二级单位输入框 self.zhicheng_qwidget = self.ui.lineEdit_3 # 职称输入框 self.jiaoyuan_qwidget = self.ui.lineEdit_4 # 教员输入框 self.login_btn = self.ui.pushButton # 登录抽课按钮 self.textBrowser = self.ui.textBrowser # 授课对象显示区域 # 绑定信号与槽函数 self.textBrowser_2 = self.ui.textBrowser_2 # 文本显示区域课程名称 self.textBrowser_3 = self.ui.textBrowser_3 # 文本显示区域课次 self.textBrowser_4 = self.ui.textBrowser_4 # 文本显示区域教研室 self.login_btn.clicked.connect(self.login) self.login_btna = self.ui.pushButton_2 self.login_btna.clicked.connect(lambda: self.plot_q()) except Exception as e: print(e.__class__.__name__, e) def login(self): print('1.2') """登录按钮的槽函数""" #print(self.user_name_qwidget.text()) a = self.user_name_qwidget.text() e = sel 为什么会报错

198 浏览量