Пример #1
0
    def __init__(self):
        super(ReplaceTool, self).__init__()

        self.setWindowFlags(Qt.WindowStaysOnTopHint)
        self.setWindowTitle('Replace Tool')
        self.setFixedHeight(100)
        self.setFixedWidth(320)

        lyt_main = QVBoxLayout()

        lbl_find = QLabel('Find:')
        lbl_find.setFixedWidth(55)

        self.ledit_find = QLineEdit()

        lbl_replace = QLabel('Replace:')
        lbl_replace.setFixedWidth(55)

        self.ledit_replace = QLineEdit()

        reg_ex = QRegExp("[a-zA-Z_]+")
        text_validator = QRegExpValidator(reg_ex, self.ledit_find)
        self.ledit_find.setValidator(text_validator)
        self.ledit_replace.setValidator(text_validator)

        lyt_find = QHBoxLayout()
        lyt_find.addWidget(lbl_find)
        lyt_find.addWidget(self.ledit_find)

        lyt_main.addLayout(lyt_find)

        lyt_replace = QHBoxLayout()
        lyt_replace.addWidget(lbl_replace)
        lyt_replace.addWidget(self.ledit_replace)

        lyt_main.addLayout(lyt_replace)

        btn_submit = QPushButton('Submit')
        btn_submit.setFixedHeight(20)
        btn_submit.setFixedWidth(55)

        lyt_submit_button = QHBoxLayout()
        lyt_submit_button.setAlignment(Qt.AlignRight)
        lyt_submit_button.addWidget(btn_submit)

        lyt_main.addLayout(lyt_submit_button)

        self.setLayout(lyt_main)

        btn_submit.clicked.connect(self.submit)
Пример #2
0
class MainWindow(QDialog):

	def __init__(self, parent=None):
		super(MainWindow, self).__init__(parent)
		self.h0        = QHBoxLayout()
		self.lineArray = []
		labelArray     = [u'時間', u'值班', u'救護勤務', u'備勤', u'待命服勤', u'水源查察', u'消防查察', u'宣導勤務', u'訓(演)練', u'專案勤務', u'南山救護站']
		for i in labelArray:
			label = QLabel(i)
			label.setFixedWidth(100)
			label.setAlignment(Qt.AlignCenter)
			self.h0.addWidget(label)
			self.h0.addSpacing(15)

		self.v0 = QVBoxLayout()
		self.v0.addLayout(self.h0)

		for i in xrange(24):	
			hn = QHBoxLayout()
			for j in xrange(len(labelArray)):
				if j == 0:
					time = i+8 if (i+8)< 24 else i+8-24
					line = QLabel("%s:00~%s:00" % (str(time).zfill(2), str(time+1).zfill(2)))
				else:
					line = QLineEdit()
					self.lineArray.append(line)
				line.setFixedWidth(100)
				hn.addSpacing(15)					
				hn.addWidget(line)


			self.v0.addLayout(hn)
		self.h1 = QHBoxLayout()
		
		self.clearPB = QPushButton("Clear All")
		self.clearPB.setFixedWidth(200)
		self.clearPB.setFixedHeight(50)
		self.clearPB.clicked.connect(self.clear)
		self.h1.addStretch()
		self.h1.addWidget(self.clearPB)
		self.h1.addStretch()

		self.v0.addLayout(self.h1)

		self.setLayout(self.v0)

	def clear(self):
		for each in self.lineArray:
			each.setText('')
Пример #3
0
    def __init__(self, *args, **kwrgs):

        existing_widgets = Window.mayaWin.findChildren( QDialog, Window.objectName )
        if existing_widgets: map( lambda x: x.deleteLater(), existing_widgets )

        super( Window, self ).__init__( *args, **kwrgs )
        self.installEventFilter( self )
        self.setObjectName( Window.objectName )
        self.setWindowTitle( Window.title )

        mainLayout = QVBoxLayout( self ); mainLayout.setContentsMargins( 0,0,0,0 ); mainLayout.setSpacing(0)

        w_controller = Widget_loadObject( title="Controller", saveInfo=False )
        w_separator1 = Widget_Separator()
        w_target     = Widget_target()
        w_attrName = Widget_attributeName()
        w_startIndex = Widget_startIndex()
        w_buttons = QWidget()
        lay_buttons = QHBoxLayout( w_buttons ); lay_buttons.setContentsMargins( 10,0,10,10 ); lay_buttons.setSpacing( 0 )
        button_connect = QPushButton( "Connect" ); button_connect.setFixedHeight( 25 )
        button_close   = QPushButton( "Close" ); button_close.setFixedHeight( 25 )
        lay_buttons.addWidget( button_connect )
        lay_buttons.addWidget( button_close )

        mainLayout.addWidget(w_controller)
        mainLayout.addWidget(w_separator1)
        mainLayout.addWidget( w_target )
        mainLayout.addWidget(w_attrName)
        mainLayout.addWidget(w_startIndex)
        mainLayout.addWidget( w_buttons )

        self.resize( Window.defaultWidth, Window.defaultHeight )
        self.load_shapeInfo( Window.path_uiInfo )

        button_connect.clicked.connect( self.cmd_connect )
        button_close.clicked.connect( self.deleteLater )

        self.w_controller = w_controller
        self.w_target = w_target
        self.w_attrName = w_attrName
        self.w_startIndex = w_startIndex
Пример #4
0
class DirectoryDetectWindow(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.setWindowTitle('Directory Detective Tool')
        main_layout = QVBoxLayout()

        path_layout = self._init_path_layout()
        guide_layout = self._init_guide_layout()
        detail_layout = self._init_detail_layout()

        main_layout.addLayout(path_layout)
        main_layout.addLayout(guide_layout)
        main_layout.addLayout(detail_layout)
        self.setLayout(main_layout)
        self.setGeometry(300, 300, 400, 350)
        self._connect()

        self._walk_folder = None
        self._last_path = None
        self.directory_info = None
        self._button_list = list()
        self._last_info = None

    def _init_path_layout(self):
        path_layout = QHBoxLayout()
        self.input_path = QLineEdit(self)
        self.input_path.setFixedHeight(35)
        self.input_path.setPlaceholderText('Type search path here')
        self.button_path = QPushButton('Scan', self)
        self.button_path.setFixedHeight(35)
        self.button_path.setFocus()

        path_layout.addWidget(QLabel('Path:', self))
        path_layout.addWidget(self.input_path, stretch=True)
        path_layout.addWidget(self.button_path)
        return path_layout

    def _init_guide_layout(self):
        self.guide_layout = QHBoxLayout()
        self.guide_layout.setAlignment(Qt.AlignLeft)
        return self.guide_layout

    def refresh_trees(self, store_list, ignore_list):
        self._refresh_key_tree(store_list, ignore_list=ignore_list)
        self._refresh_value_tree(store_list)

    def add_button(self, name, store_list, ignore_list=None):
        button = QPushButton(name)
        button.setFixedSize(60, 35)
        item = (name, button, store_list, ignore_list)
        self._button_list.append(item)
        self.guide_layout.addWidget(button)
        self.refresh_trees(store_list=store_list, ignore_list=ignore_list)
        button.clicked.connect(lambda: self._set_button(item=item))

    def _set_button(self, item):
        index_item = self._button_list.index(item)

        if len(self._button_list) > index_item + 1:
            for name, button, store_list, ignore_list in self._button_list[index_item + 1:]:
                button.setParent(None)

        name, button, store_list, ignore_list = item
        self.refresh_trees(store_list=store_list, ignore_list=ignore_list)

    def _init_detail_layout(self):
        detail_layout = QGridLayout()
        self.key_tree = QTreeWidget()
        self.key_tree.setColumnCount(2)
        self.key_tree.setColumnWidth(0, 200)
        self.key_tree.setHeaderLabels(['Key', 'Size'])

        self.value_tree = QTreeWidget()
        self.value_tree.setColumnCount(2)
        self.value_tree.setColumnWidth(0, 200)
        self.value_tree.setHeaderLabels(['Path', 'Size'])

        detail_layout.setColumnStretch(0, 1)
        detail_layout.setColumnStretch(1, 1)
        detail_layout.addWidget(self.value_tree)
        detail_layout.addWidget(self.key_tree)
        return detail_layout

    def _connect(self):
        self.button_path.clicked.connect(self.button_path_clicked)
        self.key_tree.doubleClicked.connect(self.key_tree_double_clicked)

    def button_path_clicked(self):
        del self._button_list[:]
        for _ in range(self.guide_layout.count()):
            current_item = self.guide_layout.takeAt(0)
            current_item.widget().setParent(None)

        path = unicode.encode(self.input_path.text())
        if self._last_path != path:
            self._walk_folder = walk_folder.run(path=path)

        max_level = 4
        self.directory_info = list(self._walk_folder.get_children_by_level(level=max_level))
        self.add_button('/', self.directory_info)

    def key_tree_double_clicked(self, selected_index=QModelIndex()):
        select_data = selected_index.data()
        ignore_list = [select_data]
        for item in self._button_list[1:]:
            ignore_list.append(item[0])

        store_dict = dict(self._last_info.get_children_by_key(key=select_data, ignore_list=ignore_list).sort_dictionary)
        store_list = list()

        for item in store_dict.values():
            store_list.extend(item['children'])

        store_list = list(set(store_list))
        self.add_button(select_data, store_list or list(), ignore_list=ignore_list)

    def _get_size(self, size):
        return '{} <> {}%'.format(human_size(size), round(size * 100 / self._walk_folder.total_size, 2))

    def _refresh_key_tree(self, directory_info, ignore_list=None):
        info = LabelInfo(make_dictionary_by_classification(directory_info, ignore_list))

        # Clear
        for _ in range(self.key_tree.topLevelItemCount()):
            self.key_tree.takeTopLevelItem(0)

        # Add
        for k, v in info.sort_dictionary:
            tree_widget = QTreeWidgetItem()
            tree_widget.setText(0, k)
            total_size = 0
            for child in v['children']:
                total_size += child.total_size
            tree_widget.setText(1, self._get_size(v[constant.sort_size_name]))
            self.key_tree.addTopLevelItem(tree_widget)
        self._last_info = info

    def _refresh_value_tree(self, directory_info):
        info = sorted(directory_info, key=lambda x: x.total_size, reverse=True)

        # Clear
        for _ in range(self.value_tree.topLevelItemCount()):
            self.value_tree.takeTopLevelItem(0)

        # Add
        for item in info:
            tree_widget = QTreeWidgetItem()
            tree_widget.setText(0, item.part_path)
            tree_widget.setText(1, self._get_size(item.total_size))
            self.value_tree.addTopLevelItem(tree_widget)