def _init_ui(self): radio_group_h = MRadioButtonGroup() radio_group_h.set_button_list(['Apple', {'text': 'Banana'}, {'text': 'Pear'}]) radio_grp_1_lay = QHBoxLayout() radio_grp_1_lay.addWidget(radio_group_h) radio_grp_1_lay.addStretch() app_data = [ {'text': 'Maya', 'icon': MIcon('app-maya.png')}, {'text': 'Nuke', 'icon': MIcon('app-nuke.png')}, {'text': 'Houdini', 'icon': MIcon('app-houdini.png')} ] radio_group_v = MRadioButtonGroup(orientation=Qt.Vertical) radio_group_v.set_button_list(app_data) radio_group_button_h = MRadioButtonGroup() radio_group_button_h.set_button_list(app_data) radio_grp_h_lay = QHBoxLayout() radio_grp_h_lay.addWidget(radio_group_button_h) radio_grp_h_lay.addStretch() radio_group_button_v = MRadioButtonGroup(orientation=Qt.Vertical) radio_group_button_v.set_button_list(app_data) self.register_field('value1', -1) self.register_field('value1_text', functools.partial(self.value_to_text, 'value1', app_data)) self.register_field('value2', 0) self.register_field('value2_text', functools.partial(self.value_to_text, 'value2', app_data)) self.register_field('value3', -1) self.register_field('value3_text', functools.partial(self.value_to_text, 'value3', app_data)) button1 = MPushButton(text='Group 1') button2 = MPushButton(text='Group 2') button3 = MPushButton(text='Group 3') button1.clicked.connect(functools.partial(self.slot_change_value, 'value1')) button2.clicked.connect(functools.partial(self.slot_change_value, 'value2')) button3.clicked.connect(functools.partial(self.slot_change_value, 'value3')) self.bind('value1', radio_group_v, 'dayu_checked', signal='sig_checked_changed') self.bind('value2', radio_group_button_h, 'dayu_checked', signal='sig_checked_changed') self.bind('value3', radio_group_button_v, 'dayu_checked', signal='sig_checked_changed') self.bind('value1_text', button1, 'text') self.bind('value2_text', button2, 'text') self.bind('value3_text', button3, 'text') main_lay = QVBoxLayout() main_lay.addWidget(MDivider('MRadioButtonGroup: orientation=Qt.Horizontal ')) main_lay.addLayout(radio_grp_1_lay) main_lay.addWidget(MDivider('MRadioButtonGroup: orientation=Qt.Vertical')) main_lay.addWidget(radio_group_v) main_lay.addWidget(button1) main_lay.addWidget(MDivider('MRadioButtonGroup: orientation=Qt.Horizontal type=button')) main_lay.addLayout(radio_grp_h_lay) main_lay.addWidget(button2) main_lay.addWidget(MDivider('MRadioButtonGroup: orientation=Qt.Vertical, type=button')) main_lay.addWidget(radio_group_button_v) main_lay.addWidget(button3) main_lay.addStretch() self.setLayout(main_lay)
def _init_ui(self): model_1 = MTableModel() model_1.set_header_list(mock.header_list) model_sort = MSortFilterModel() model_sort.setSourceModel(model_1) tree_view = MTreeView() tree_view.setModel(model_sort) model_sort.set_header_list(mock.header_list) tree_view.set_header_list(mock.header_list) model_1.set_data_list(mock.tree_data_list) line_edit = MLineEdit().search().small() line_edit.textChanged.connect(model_sort.set_search_pattern) expand_all_button = MPushButton('Expand All').small() expand_all_button.clicked.connect(tree_view.expandAll) collapse_all_button = MPushButton('Collapse All').small() collapse_all_button.clicked.connect(tree_view.collapseAll) button_lay = QHBoxLayout() button_lay.addWidget(expand_all_button) button_lay.addWidget(collapse_all_button) button_lay.addWidget(line_edit) button_lay.addStretch() main_lay = QVBoxLayout() main_lay.addLayout(button_lay) main_lay.addWidget(tree_view) main_lay.addStretch() self.setLayout(main_lay)
class IPathSelector(QtWidgets.QWidget): def __init__(self, parent=None, select_callback=None, label=u"文件路径", button_text=u"浏览"): super(IPathSelector, self).__init__(parent=parent) self.label = QtWidgets.QLabel(label) self.line = MLineEdit() self.button = MPushButton() self.button.setText(button_text) callback = select_callback if callable( select_callback) else self.browser_file self.button.clicked.connect(partial(callback, self.line)) layout = QtWidgets.QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) layout.addWidget(self.label) layout.addWidget(self.line) layout.addWidget(self.button) def browser_file(self, line): path = QtWidgets.QFileDialog.getExistingDirectory( self, 'Browser Folder') line.setText(path) if path else None
def _init_ui(self): scale_x, _ = get_scale_factor() self.button_grp = MRadioButtonGroup() self.button_grp.set_button_list( ["top", {"text": "right", "checked": True}, "bottom", "left"] ) open_button_2 = MPushButton("Open").primary() open_button_2.clicked.connect(self.slot_open_button_2) placement_lay = QtWidgets.QHBoxLayout() placement_lay.addWidget(self.button_grp) placement_lay.addSpacing(20 * scale_x) placement_lay.addWidget(open_button_2) placement_lay.addStretch() new_account_button = MPushButton( text="New account", icon=MIcon("add_line.svg", "#fff") ).primary() new_account_button.clicked.connect(self.slot_new_account) new_account_lay = QtWidgets.QHBoxLayout() new_account_lay.addWidget(MLabel("Submit form in drawer")) new_account_lay.addWidget(new_account_button) new_account_lay.addStretch() main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("Custom Placement")) main_lay.addLayout(placement_lay) main_lay.addWidget(MDivider("Submit form in drawer")) main_lay.addLayout(new_account_lay) main_lay.addWidget(MDivider("Preview drawer")) self.setLayout(main_lay)
def _init_ui(self): button3 = MPushButton(text="Normal Message").primary() button4 = MPushButton(text="Success Message").success() button5 = MPushButton(text="Warning Message").warning() button6 = MPushButton(text="Error Message").danger() button3.clicked.connect( functools.partial(self.slot_show_message, MToast.info, {"text": "好像没啥用"})) button4.clicked.connect( functools.partial(self.slot_show_message, MToast.success, {"text": "领取成功"})) button5.clicked.connect( functools.partial(self.slot_show_message, MToast.warning, {"text": "暂不支持"})) button6.clicked.connect( functools.partial(self.slot_show_message, MToast.error, {"text": "支付失败,请重试"})) sub_lay1 = QtWidgets.QHBoxLayout() sub_lay1.addWidget(button3) sub_lay1.addWidget(button4) sub_lay1.addWidget(button5) sub_lay1.addWidget(button6) loading_button = MPushButton("Loading Toast").primary() loading_button.clicked.connect(self.slot_show_loading) main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("different type")) main_lay.addLayout(sub_lay1) main_lay.addWidget(MLabel("不同的提示状态:成功、失败、加载中。默认2秒后消失")) main_lay.addWidget(loading_button) main_lay.addStretch() self.setLayout(main_lay)
def _init_ui(self): self.button_grp = MRadioButtonGroup() self.button_grp.set_button_list( ['top', { 'text': 'right', 'checked': True }, 'bottom', 'left']) open_button_2 = MPushButton('Open').primary() open_button_2.clicked.connect(self.slot_open_button_2) placement_lay = QHBoxLayout() placement_lay.addWidget(self.button_grp) placement_lay.addSpacing(20) placement_lay.addWidget(open_button_2) placement_lay.addStretch() new_account_button = MPushButton(text='New account', icon=MIcon('add_line.svg', '#fff')).primary() new_account_button.clicked.connect(self.slot_new_account) new_account_lay = QHBoxLayout() new_account_lay.addWidget(MLabel('Submit form in drawer')) new_account_lay.addWidget(new_account_button) new_account_lay.addStretch() main_lay = QVBoxLayout() main_lay.addWidget(MDivider('Custom Placement')) main_lay.addLayout(placement_lay) main_lay.addWidget(MDivider('Submit form in drawer')) main_lay.addLayout(new_account_lay) main_lay.addWidget(MDivider('Preview drawer')) self.setLayout(main_lay)
def search_engine(self, text='Search'): """Add a MPushButton to suffix for MLineEdit""" _suffix_button = MPushButton(text=text).primary() _suffix_button.clicked.connect(self.returnPressed) _suffix_button.setFixedWidth(100) self.set_suffix_widget(_suffix_button) self.setPlaceholderText(self.tr('Enter key word to search...')) return self
def test_chain_method(qtbot, attr, dayu_type): """Test MPushButton class methods.""" widget = MPushButton() if attr: getattr(widget, attr)() # widget.set_dayu_type(dayu_type) qtbot.addWidget(widget) assert widget.property("dayu_type") == dayu_type assert widget.property("dayu_size") == dayu_theme.default_size
def test_with_wrong_type(qtbot, input_type): """Test MPushButton set_dayu_type method with wrong arg. raise ValueError.""" with pytest.raises(ValueError) as exc_info: widget = MPushButton() widget.set_dayu_type(input_type) qtbot.addWidget(widget) exception_msg = exc_info.value.args[0] assert exception_msg == "Input argument 'value' should be one of " \ "default/primary/success/warning/danger string."
def slot_new_account(self): custom_widget = QWidget() custom_lay = QFormLayout() custom_lay.addRow('Name', MLineEdit()) custom_lay.addRow('Age', MSpinBox()) custom_lay.addRow('Birth', MDateEdit()) custom_widget.setLayout(custom_lay) drawer = MDrawer('New account', parent=self) submit_button = MPushButton('Submit').primary() submit_button.clicked.connect(drawer.close) drawer.add_button(MPushButton('Cancel')) drawer.add_button(submit_button) drawer.setFixedWidth(200) drawer.set_widget(custom_widget) drawer.show()
def slot_new_account(self): custom_widget = QtWidgets.QWidget() custom_lay = QtWidgets.QFormLayout() custom_lay.addRow("Name", MLineEdit()) custom_lay.addRow("Age", MSpinBox()) custom_lay.addRow("Birth", MDateEdit()) custom_widget.setLayout(custom_lay) drawer = MDrawer("New account", parent=self) submit_button = MPushButton("Submit").primary() submit_button.clicked.connect(drawer.close) drawer.add_widget_to_bottom(MPushButton("Cancel")) drawer.add_widget_to_bottom(submit_button) scale_x, _ = get_scale_factor() drawer.setFixedWidth(300 * scale_x) drawer.set_widget(custom_widget) drawer.show()
def _init_ui(self): form_lay = QtWidgets.QFormLayout() form_lay.setLabelAlignment(QtCore.Qt.AlignRight) gender_grp = MRadioButtonGroup() gender_grp.set_button_list([ { "text": "Female", "icon": MIcon("female.svg") }, { "text": "Male", "icon": MIcon("male.svg") }, ]) country_combo_box = MComboBox().small() country_combo_box.addItems(["China", "France", "Japan", "US"]) date_edit = MDateEdit().small() date_edit.setCalendarPopup(True) form_lay.addRow("Name:", MLineEdit().small()) form_lay.addRow("Gender:", gender_grp) form_lay.addRow("Age:", MSpinBox().small()) form_lay.addRow("Password:"******"Country:", country_combo_box) form_lay.addRow("Birthday:", date_edit) switch = MSwitch() switch.setChecked(True) form_lay.addRow("Switch:", switch) slider = MSlider() slider.setValue(30) form_lay.addRow("Slider:", slider) button_lay = QtWidgets.QHBoxLayout() button_lay.addStretch() button_lay.addWidget(MPushButton(text="Submit").primary()) button_lay.addWidget(MPushButton(text="Cancel")) main_lay = QtWidgets.QVBoxLayout() main_lay.addLayout(form_lay) main_lay.addWidget(MCheckBox("I accept the terms and conditions")) main_lay.addStretch() main_lay.addWidget(MDivider()) main_lay.addLayout(button_lay) self.setLayout(main_lay)
def _init_ui(self): self.app_data = [{ 'text': 'Maya', 'icon': MIcon('app-maya.png') }, { 'text': 'Nuke', 'icon': MIcon('app-nuke.png') }, { 'text': 'Houdini', 'icon': MIcon('app-houdini.png') }] radio_group_h = MCheckBoxGroup() radio_group_v = MCheckBoxGroup(orientation=Qt.Vertical) radio_group_h.set_button_list(self.app_data) radio_group_v.set_button_list(self.app_data) self.data_list = [u'北京', u'上海', u'广州', u'深圳', u'郑州', u'石家庄'] radio_group_b = MCheckBoxGroup() radio_group_b.set_button_list(self.data_list) button = MPushButton(text='Change Value') button.clicked.connect(self.slot_button_clicked) label = MLabel() self.register_field('checked_app', [u'北京', u'郑州']) self.register_field('checked_app_text', lambda: u' & '.join(self.field('checked_app'))) self.bind('checked_app', radio_group_b, 'dayu_checked', signal='sig_checked_changed') self.bind('checked_app_text', label, 'text') radio_group_tri = MCheckBoxGroup() radio_group_tri.set_button_list(self.app_data) self.register_field('check_grp', [u'Maya']) self.bind('check_grp', radio_group_tri, 'dayu_checked', signal='sig_checked_changed') main_lay = QVBoxLayout() main_lay.addWidget(MDivider('Orientation Qt.Horizontal')) main_lay.addWidget(radio_group_h) main_lay.addWidget(MDivider('Orientation Qt.Vertical')) main_lay.addWidget(radio_group_v) main_lay.addWidget(MDivider('Data Bind')) main_lay.addWidget(radio_group_b) main_lay.addWidget(label) main_lay.addWidget(button) main_lay.addWidget(MDivider('Try Context Menu')) main_lay.addWidget(radio_group_tri) main_lay.addStretch() self.setLayout(main_lay)
def _init_ui(self): main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("no size grip")) main_lay.addWidget(MTextEdit(self)) main_lay.addWidget(MDivider("size grip")) main_lay.addWidget(MTextEdit(self).resizeable()) main_lay.addWidget(MPushButton("text").primary()) self.setLayout(main_lay)
def _init_ui(self): main_lay = QVBoxLayout() main_lay.addWidget(MDivider('no size grip')) main_lay.addWidget(MTextEdit(self)) main_lay.addWidget(MDivider('size grip')) main_lay.addWidget(MTextEdit(self).resizeable()) main_lay.addWidget(MPushButton('text').primary()) self.setLayout(main_lay)
def _init_ui(self): # header_list = [Column.load(c) for c in mock.header_list] header_list = mock.column_list model_1 = MTableModel() model_1.set_header_list(header_list) model_sort = MSortFilterModel() model_sort.setSourceModel(model_1) table_small = MTableView(size=dayu_theme.small, show_row_count=True) table_grid = MTableView(size=dayu_theme.small, show_row_count=True) table_grid.setShowGrid(True) table_default = MTableView(size=dayu_theme.medium, show_row_count=True) thread = MFetchDataThread(self) self.loading_wrapper = MLoadingWrapper(widget=table_default, loading=False) thread.started.connect( functools.partial(self.loading_wrapper.set_dayu_loading, True)) thread.finished.connect( functools.partial(self.loading_wrapper.set_dayu_loading, False)) thread.finished.connect( functools.partial(table_default.setModel, model_sort)) button = MPushButton(text='Get Data: 4s') button.clicked.connect(thread.start) switch_lay = QHBoxLayout() switch_lay.addWidget(button) switch_lay.addStretch() table_large = MTableView(size=dayu_theme.large, show_row_count=False) table_small.setModel(model_sort) table_grid.setModel(model_sort) table_large.setModel(model_sort) model_sort.set_header_list(header_list) table_small.set_header_list(header_list) table_grid.set_header_list(header_list) table_default.set_header_list(header_list) table_large.set_header_list(header_list) model_1.set_data_list(mock.data_list) line_edit = MLineEdit().search().small() line_edit.textChanged.connect(model_sort.set_search_pattern) main_lay = QVBoxLayout() main_lay.addWidget(line_edit) main_lay.addWidget(MDivider('Small Size')) main_lay.addWidget(table_small) main_lay.addWidget(MDivider('Default Size')) main_lay.addLayout(switch_lay) main_lay.addWidget(self.loading_wrapper) main_lay.addWidget(MDivider('Large Size (Hide Row Count)')) main_lay.addWidget(table_large) main_lay.addWidget(MDivider('With Grid')) main_lay.addWidget(table_grid) main_lay.addStretch() self.setLayout(main_lay)
def _init_ui(self): model_1 = MTableModel() model_1.set_header_list(mock.header_list) model_sort = MSortFilterModel() model_sort.setSourceModel(model_1) table_small = MTableView(size=dayu_theme.small, show_row_count=True) table_grid = MTableView(size=dayu_theme.small, show_row_count=True) table_grid.setShowGrid(True) table_default = MTableView(size=dayu_theme.medium, show_row_count=True) thread = MFetchDataThread(self) self.loading_wrapper = MLoadingWrapper(widget=table_default, loading=False) thread.started.connect( functools.partial(self.loading_wrapper.set_dayu_loading, True)) thread.finished.connect( functools.partial(self.loading_wrapper.set_dayu_loading, False)) thread.finished.connect( functools.partial(table_default.setModel, model_sort)) button = MPushButton(text="Get Data: 4s") button.clicked.connect(thread.start) switch_lay = QtWidgets.QHBoxLayout() switch_lay.addWidget(button) switch_lay.addStretch() table_large = MTableView(size=dayu_theme.large, show_row_count=False) table_small.setModel(model_sort) table_grid.setModel(model_sort) table_large.setModel(model_sort) model_sort.set_header_list(mock.header_list) table_small.set_header_list(mock.header_list) table_grid.set_header_list(mock.header_list) table_default.set_header_list(mock.header_list) table_large.set_header_list(mock.header_list) model_1.set_data_list(mock.data_list) line_edit = MLineEdit().search().small() line_edit.textChanged.connect(model_sort.set_search_pattern) main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(line_edit) main_lay.addWidget(MDivider("Small Size")) main_lay.addWidget(table_small) main_lay.addWidget(MDivider("Default Size")) main_lay.addLayout(switch_lay) main_lay.addWidget(self.loading_wrapper) main_lay.addWidget(MDivider("Large Size (Hide Row Count)")) main_lay.addWidget(table_large) main_lay.addWidget(MDivider("With Grid")) main_lay.addWidget(table_grid) main_lay.addStretch() main_lay.addWidget( MAlert('Simply use "MItemViewSet" or "MItemViewFullSet"')) self.setLayout(main_lay)
def _init_ui(self): item_view_set_table = MItemViewSet( view_type=MItemViewSet.TableViewType) item_view_set_table.set_header_list(mock.header_list) item_view_set_list = MItemViewSet(view_type=MItemViewSet.ListViewType) item_view_set_list.set_header_list(mock.header_list) item_view_set_tree = MItemViewSet(view_type=MItemViewSet.TreeViewType) item_view_set_tree.set_header_list(mock.header_list) item_view_set_thumbnail = MItemViewSet( view_type=MItemViewSet.BigViewType) item_view_set_thumbnail.set_header_list(mock.header_list) item_view_set_search = MItemViewSet( view_type=MItemViewSet.TreeViewType) item_view_set_search.set_header_list(mock.header_list) item_view_set_search.searchable() expand_button = MPushButton("Expand All") expand_button.clicked.connect(item_view_set_search.item_view.expandAll) coll_button = MPushButton("Collapse All") coll_button.clicked.connect(item_view_set_search.item_view.collapseAll) item_view_set_search.insert_widget(coll_button) item_view_set_search.insert_widget(expand_button) main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("Table View")) main_lay.addWidget(item_view_set_table) main_lay.addWidget(MDivider("List View")) main_lay.addWidget(item_view_set_list) main_lay.addWidget(MDivider("Tree View")) main_lay.addWidget(item_view_set_tree) main_lay.addWidget(MDivider("Big View")) main_lay.addWidget(item_view_set_thumbnail) main_lay.addWidget(MDivider("With Search line edit")) main_lay.addWidget(item_view_set_search) main_lay.addStretch() self.setLayout(main_lay) item_view_set_table.setup_data((mock.data_list)) item_view_set_list.setup_data((mock.data_list)) item_view_set_tree.setup_data((mock.tree_data_list)) item_view_set_thumbnail.setup_data((mock.data_list)) item_view_set_search.setup_data((mock.tree_data_list))
def __init__(self, parent=None): super(FieldMixinExample, self).__init__(parent) self.register_field("my_name", "xiaoming") self.register_field("thumbnail_path", "") self.register_field("is_enable", True) self.register_field("status", "waiting") self.register_field("str_enable", self.computed_str_enable) self.register_field("thumbnail_pix_map", self.computed_thumbnail_pix_map) self.register_field("email", self.computed_email) name2_label = MLabel() email_label = MLabel() thumbnail_label = MLabel() enable_button = MPushButton().primary() self.bind("my_name", name2_label, "dayu_text") self.bind("email", email_label, "dayu_text") self.bind("is_enable", enable_button, "enabled") self.bind("thumbnail_pix_map", thumbnail_label, "pixmap") self.bind("str_enable", enable_button, "text") button = MPushButton(text="Change Data").primary() button.clicked.connect(self.slot_change_data) main_lay = QtWidgets.QGridLayout() main_lay.addWidget(MLabel("Avatar:"), 0, 0) main_lay.addWidget(thumbnail_label, 0, 1) main_lay.addWidget(MLabel("Name:"), 1, 0) main_lay.addWidget( self.bind("my_name", MLineEdit(), "text", signal="textEdited"), 1, 1) main_lay.addWidget(MLabel("Email:"), 2, 0) main_lay.addWidget(email_label, 2, 1) main_lay.addWidget(MLabel("Enabled:"), 3, 0) main_lay.addWidget(enable_button, 3, 1) # for index, i in enumerate(self.field('my_name')): # main_lay.addRow('name{}:'.format(index), self.bind('my_name', QLabel(), 'text', index=index)) main_lay.addWidget(button, 4, 1) temp_lay = QtWidgets.QVBoxLayout() temp_lay.addLayout(main_lay) temp_lay.addStretch() self.setLayout(temp_lay)
def test_mpushbutton_init(qtbot, dayu_type, dayu_size, icon, text): """Test MPushButton set_dayu_size and set_dayu_type.""" widget = MPushButton(icon=MIcon(icon) if icon else icon, text=text) widget.set_dayu_size(dayu_size) widget.set_dayu_type(dayu_type) qtbot.addWidget(widget) assert widget.property('dayu_type') == dayu_type assert widget.property('dayu_size') == dayu_size
def _init_ui(self): form_lay = QFormLayout() form_lay.setLabelAlignment(Qt.AlignRight) gender_grp = MRadioButtonGroup() gender_grp.set_button_list([{ 'text': 'Female', 'icon': MIcon('female.svg') }, { 'text': 'Male', 'icon': MIcon('male.svg') }]) country_combo_box = MComboBox().small() country_combo_box.addItems(['China', 'France', 'Japan', 'US']) date_edit = MDateEdit().small() date_edit.setCalendarPopup(True) form_lay.addRow('Name:', MLineEdit().small()) form_lay.addRow('Gender:', gender_grp) form_lay.addRow('Age:', MSpinBox().small()) form_lay.addRow('Password:'******'Country:', country_combo_box) form_lay.addRow('Birthday:', date_edit) switch = MSwitch() switch.setChecked(True) form_lay.addRow('Switch:', switch) slider = MSlider() slider.setValue(30) form_lay.addRow('Slider:', slider) button_lay = QHBoxLayout() button_lay.addStretch() button_lay.addWidget(MPushButton(text='Submit').primary()) button_lay.addWidget(MPushButton(text='Cancel')) main_lay = QVBoxLayout() main_lay.addLayout(form_lay) main_lay.addWidget(MCheckBox('I accept the terms and conditions')) main_lay.addStretch() main_lay.addWidget(MDivider()) main_lay.addLayout(button_lay) self.setLayout(main_lay)
def __init__(self, parent=None): super(CheckBoxExample, self).__init__(parent) self.setWindowTitle("Example for MCheckBox") grid_lay = QtWidgets.QGridLayout() for index, (text, state) in enumerate([ ("Unchecked", QtCore.Qt.Unchecked), ("Checked", QtCore.Qt.Checked), ("Partially", QtCore.Qt.PartiallyChecked), ]): check_box_normal = MCheckBox(text) check_box_normal.setCheckState(state) check_box_disabled = MCheckBox(text) check_box_disabled.setCheckState(state) check_box_disabled.setEnabled(False) grid_lay.addWidget(check_box_normal, 0, index) grid_lay.addWidget(check_box_disabled, 1, index) icon_lay = QtWidgets.QHBoxLayout() for text, icon in [ ("Maya", MIcon("app-maya.png")), ("Nuke", MIcon("app-nuke.png")), ("Houdini", MIcon("app-houdini.png")), ]: check_box_icon = MCheckBox(text) check_box_icon.setIcon(icon) icon_lay.addWidget(check_box_icon) check_box_bind = MCheckBox("Data Bind") label = MLabel() button = MPushButton(text="Change State") button.clicked.connect( lambda: self.set_field("checked", not self.field("checked"))) self.register_field("checked", True) self.register_field( "checked_text", lambda: "Yes!" if self.field("checked") else "No!!") self.bind("checked", check_box_bind, "checked", signal="stateChanged") self.bind("checked_text", label, "text") main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("Basic")) main_lay.addLayout(grid_lay) main_lay.addWidget(MDivider("Icon")) main_lay.addLayout(icon_lay) main_lay.addWidget(MDivider("Data Bind")) main_lay.addWidget(check_box_bind) main_lay.addWidget(label) main_lay.addWidget(button) main_lay.addStretch() self.setLayout(main_lay)
def __init__(self, parent=None): super(RadioButtonExample, self).__init__(parent) self.setWindowTitle("Example for MRadioButton") widget_1 = QtWidgets.QWidget() lay_1 = QtWidgets.QHBoxLayout() lay_1.addWidget(MRadioButton("Maya")) lay_1.addWidget(MRadioButton("Nuke")) lay_1.addWidget(MRadioButton("Houdini")) widget_1.setLayout(lay_1) check_box_icon_1 = MRadioButton("Folder") check_box_icon_1.setIcon(MIcon("folder_fill.svg")) check_box_icon_2 = MRadioButton("Media") check_box_icon_2.setIcon(MIcon("media_fill.svg")) check_box_icon_3 = MRadioButton("User") check_box_icon_3.setIcon(MIcon("user_fill.svg")) check_box_icon_2.setChecked(True) widget_2 = QtWidgets.QWidget() lay_2 = QtWidgets.QHBoxLayout() lay_2.addWidget(check_box_icon_1) lay_2.addWidget(check_box_icon_2) lay_2.addWidget(check_box_icon_3) widget_2.setLayout(lay_2) check_box_single = MRadioButton("支付宝") check_box_single.setChecked(True) check_box_single.setEnabled(False) check_box_bind = MRadioButton("Data Bind") label = MLabel() button = MPushButton(text="Change State") button.clicked.connect( lambda: self.set_field("checked", not self.field("checked"))) self.register_field("checked", True) self.register_field( "checked_text", lambda: "Yes!" if self.field("checked") else "No!!") self.bind("checked", check_box_bind, "checked", signal="toggled") self.bind("checked_text", label, "text") main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("Basic")) main_lay.addWidget(widget_1) main_lay.addWidget(check_box_single) main_lay.addWidget(MDivider("Icon")) main_lay.addWidget(widget_2) main_lay.addWidget(MDivider("Data Bind")) main_lay.addWidget(check_box_bind) main_lay.addWidget(label) main_lay.addWidget(button) main_lay.addStretch() self.setLayout(main_lay)
def __init__(self, parent=None): super(RadioButtonExample, self).__init__(parent) self.setWindowTitle('Example for MRadioButton') widget_1 = QWidget() lay_1 = QHBoxLayout() lay_1.addWidget(MRadioButton('Maya')) lay_1.addWidget(MRadioButton('Nuke')) lay_1.addWidget(MRadioButton('Houdini')) widget_1.setLayout(lay_1) check_box_icon_1 = MRadioButton('Folder') check_box_icon_1.setIcon(MIcon('folder_fill.svg')) check_box_icon_2 = MRadioButton('Media') check_box_icon_2.setIcon(MIcon('media_fill.svg')) check_box_icon_3 = MRadioButton('User') check_box_icon_3.setIcon(MIcon('user_fill.svg')) check_box_icon_2.setChecked(True) widget_2 = QWidget() lay_2 = QHBoxLayout() lay_2.addWidget(check_box_icon_1) lay_2.addWidget(check_box_icon_2) lay_2.addWidget(check_box_icon_3) widget_2.setLayout(lay_2) check_box_single = MRadioButton(u'支付宝') check_box_single.setChecked(True) check_box_single.setEnabled(False) check_box_bind = MRadioButton('Data Bind') label = MLabel() button = MPushButton(text='Change State') button.clicked.connect( lambda: self.set_field('checked', not self.field('checked'))) self.register_field('checked', True) self.register_field( 'checked_text', lambda: 'Yes!' if self.field('checked') else 'No!!') self.bind('checked', check_box_bind, 'checked', signal='toggled') self.bind('checked_text', label, 'text') main_lay = QVBoxLayout() main_lay.addWidget(MDivider('Basic')) main_lay.addWidget(widget_1) main_lay.addWidget(check_box_single) main_lay.addWidget(MDivider('Icon')) main_lay.addWidget(widget_2) main_lay.addWidget(MDivider('Data Bind')) main_lay.addWidget(check_box_bind) main_lay.addWidget(label) main_lay.addWidget(button) main_lay.addStretch() self.setLayout(main_lay)
def __init__(self, parent=None): super(FieldMixinExample, self).__init__(parent) self.register_field('my_name', 'xiaoming') self.register_field('thumbnail_path', '') self.register_field('is_enable', True) self.register_field('status', 'waiting') self.register_field('str_enable', self.computed_str_enable) self.register_field('thumbnail_pix_map', self.computed_thumbnail_pix_map) self.register_field('email', self.computed_email) name2_label = MLabel() email_label = MLabel() thumbnail_label = MLabel() enable_button = MPushButton().primary() self.bind('my_name', name2_label, 'dayu_text') self.bind('email', email_label, 'dayu_text') self.bind('is_enable', enable_button, 'enabled') self.bind('thumbnail_pix_map', thumbnail_label, 'pixmap') self.bind('str_enable', enable_button, 'text') button = MPushButton(text='Change Data').primary() button.clicked.connect(self.slot_change_data) main_lay = QGridLayout() main_lay.addWidget(MLabel('Avatar:'), 0, 0) main_lay.addWidget(thumbnail_label, 0, 1) main_lay.addWidget(MLabel('Name:'), 1, 0) main_lay.addWidget(self.bind('my_name', MLineEdit(), 'text', signal='textEdited'), 1, 1) main_lay.addWidget(MLabel('Email:'), 2, 0) main_lay.addWidget(email_label, 2, 1) main_lay.addWidget(MLabel('Enabled:'), 3, 0) main_lay.addWidget(enable_button, 3, 1) # for index, i in enumerate(self.field('my_name')): # main_lay.addRow('name{}:'.format(index), self.bind('my_name', QLabel(), 'text', index=index)) main_lay.addWidget(button, 4, 1) temp_lay = QVBoxLayout() temp_lay.addLayout(main_lay) temp_lay.addStretch() self.setLayout(temp_lay)
def _init_ui(self): self.app_data = [ {"text": "Maya", "icon": MIcon("app-maya.png")}, {"text": "Nuke", "icon": MIcon("app-nuke.png")}, {"text": "Houdini", "icon": MIcon("app-houdini.png")}, ] radio_group_h = MCheckBoxGroup() radio_group_v = MCheckBoxGroup(orientation=QtCore.Qt.Vertical) radio_group_h.set_button_list(self.app_data) radio_group_v.set_button_list(self.app_data) self.data_list = ["北京", "上海", "广州", "深圳", "郑州", "石家庄"] radio_group_b = MCheckBoxGroup() radio_group_b.set_button_list(self.data_list) button = MPushButton(text="Change Value") button.clicked.connect(self.slot_button_clicked) label = MLabel() self.register_field("checked_app", ["北京", "郑州"]) self.register_field( "checked_app_text", lambda: " & ".join(self.field("checked_app")) ) self.bind( "checked_app", radio_group_b, "dayu_checked", signal="sig_checked_changed" ) self.bind("checked_app_text", label, "text") radio_group_tri = MCheckBoxGroup() radio_group_tri.set_button_list(self.app_data) self.register_field("check_grp", ["Maya"]) self.bind( "check_grp", radio_group_tri, "dayu_checked", signal="sig_checked_changed" ) main_lay = QtWidgets.QVBoxLayout() main_lay.addWidget(MDivider("Orientation Qt.Horizontal")) main_lay.addWidget(radio_group_h) main_lay.addWidget(MDivider("Orientation Qt.Vertical")) main_lay.addWidget(radio_group_v) main_lay.addWidget(MDivider("Data Bind")) main_lay.addWidget(radio_group_b) main_lay.addWidget(label) main_lay.addWidget(button) main_lay.addWidget(MDivider("Try Context Menu")) main_lay.addWidget(radio_group_tri) main_lay.addStretch() self.setLayout(main_lay)
def __init__(self, parent=None, select_callback=None, label=u"文件路径", button_text=u"浏览"): super(IPathSelector, self).__init__(parent=parent) self.label = QtWidgets.QLabel(label) self.line = MLineEdit() self.button = MPushButton() self.button.setText(button_text) callback = select_callback if callable( select_callback) else self.browser_file self.button.clicked.connect(partial(callback, self.line)) layout = QtWidgets.QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) layout.addWidget(self.label) layout.addWidget(self.line) layout.addWidget(self.button)
def __init__(self, parent=None): super(CheckBoxExample, self).__init__(parent) self.setWindowTitle('Example for MCheckBox') grid_lay = QGridLayout() for index, (text, state) in enumerate([('Unchecked', Qt.Unchecked), ('Checked', Qt.Checked), ('Partially', Qt.PartiallyChecked)]): check_box_normal = MCheckBox(text) check_box_normal.setCheckState(state) check_box_disabled = MCheckBox(text) check_box_disabled.setCheckState(state) check_box_disabled.setEnabled(False) grid_lay.addWidget(check_box_normal, 0, index) grid_lay.addWidget(check_box_disabled, 1, index) icon_lay = QHBoxLayout() for text, icon in [('Maya', MIcon('app-maya.png')), ('Nuke', MIcon('app-nuke.png')), ('Houdini', MIcon('app-houdini.png'))]: check_box_icon = MCheckBox(text) check_box_icon.setIcon(icon) icon_lay.addWidget(check_box_icon) check_box_bind = MCheckBox('Data Bind') label = MLabel() button = MPushButton(text='Change State') button.clicked.connect( lambda: self.set_field('checked', not self.field('checked'))) self.register_field('checked', True) self.register_field( 'checked_text', lambda: 'Yes!' if self.field('checked') else 'No!!') self.bind('checked', check_box_bind, 'checked', signal='stateChanged') self.bind('checked_text', label, 'text') main_lay = QVBoxLayout() main_lay.addWidget(MDivider('Basic')) main_lay.addLayout(grid_lay) main_lay.addWidget(MDivider('Icon')) main_lay.addLayout(icon_lay) main_lay.addWidget(MDivider('Data Bind')) main_lay.addWidget(check_box_bind) main_lay.addWidget(label) main_lay.addWidget(button) main_lay.addStretch() self.setLayout(main_lay)
def _init_ui(self): self.setWindowModality(Qt.ApplicationModal) meta_card_lay = QHBoxLayout() meta_card_lay.setSpacing(20) for setting in [ { 'title': u'ZEUS', 'cover': MPixmap( r'C:\Users\huangPeiXin\Documents\houdini17.5\python2.7libs\Zeus_Lin\res\ZeusDesign\zeus.png' ) }, { 'title': u'IDO', 'cover': MPixmap( r'C:\Users\huangPeiXin\Documents\houdini17.5\python2.7libs\Zeus_Lin\res\ZeusDesign\ido.png' ) }, ]: meta_card = MMeta() meta_card.setup_data(setting) meta_card_lay.addWidget(meta_card) left_lay = QVBoxLayout() left_lay.addWidget(MDivider('About Zeus')) left_lay.addLayout(meta_card_lay) left_lay.addWidget(MDivider('')) left_lay.setSpacing(20) label_1 = MLabel(u"Zues是由一灯工作室开发的一个软件") label_1.setAlignment(Qt.AlignHCenter) label_2 = MLabel(u"用于管理CG开发的相关资源") label_2.setAlignment(Qt.AlignHCenter) left_lay.addWidget(label_1) left_lay.addWidget(label_2) btn = MPushButton(u"确定") btn.clicked.connect(self.close) left_lay.addWidget(btn) left_lay.addStretch() self.setLayout(left_lay) dayu_theme.background_color = "#262626" dayu_theme.apply(self)
def setRegeditWindow(self): self.custom_widget = QWidget() custom_lay = QFormLayout() self.custom_widget.setLayout(custom_lay) self.btn_regedit_image = MPushButton(u'选择文件') self.line_edit_regedit_name = MLineEdit() self.line_edit_regedit_password = MLineEdit() self.line_edit_regedit_password2 = MLineEdit() self.switch_identity = MSwitch().large() custom_lay.addRow(u' 选择头像: ', self.btn_regedit_image) custom_lay.addRow(u' 账号名称: ', self.line_edit_regedit_name) custom_lay.addRow(u' 账号密码: ', self.line_edit_regedit_password) custom_lay.addRow(u' 确认密码: ', self.line_edit_regedit_password2) custom_lay.addRow(u' 管理权限: ', self.switch_identity) # custom_lay.addRow(u'管理钥匙: ',self.line_edit_key) # self.custom_widget.layout().addRow(MLabel) self.drawer = MDrawer('Regedit', parent=self) submit_button = MPushButton(u'注册').primary() cancel_button = MPushButton(u'取消') self.drawer.add_button(cancel_button) self.drawer.add_button(submit_button) self.drawer.setFixedWidth(Data.getWindowWidth() / 5) self.drawer.set_widget(self.custom_widget) self.line_edit_regedit_name.setText(self.username) self.line_edit_regedit_password.setText(self.password) self.line_edit_regedit_password2.setText(self.rePassword) self.switch_identity.clicked.connect(self.signUpManager) self.btn_regedit_image.clicked.connect(self.setHeadPorfie) submit_button.clicked.connect(self.regedit) cancel_button.clicked.connect(self.drawer.close)