def addGroupSlot(self): groupname = QInputDialog.getText(self, "输入分组名", "") if groupname[0] and groupname[1]: pListWidget1 = ListWidget(self.s, self.account, 'A') self.addItem(pListWidget1, groupname[0]) dic_list = {'listwidget': pListWidget1, 'groupname': groupname[0]} pListWidget1.setListMap(dic_list) elif groupname[0] == '' and groupname[1]: QMessageBox.warning(self, "警告", "我说你没有填写分组名哦~!")
def __init__(self): ''' 一些初始设置 ''' super().__init__() self.setWindowTitle('公众号:学点编程吧--QQ') self.setWindowFlags(Qt.Dialog) self.setMinimumSize(200, 600) self.setWhatsThis('这个一个模拟QQ软件') self.setWindowIcon(QIcon('./res/log.ico')) pListWidget = ListWidget() dic_list = {'listwidget': pListWidget, 'groupname': "我的好友"} pListWidget.setListMap(dic_list) self.addItem(pListWidget, "我的好友") self.show()
def _initUI(self): self._layout = QtGui.QVBoxLayout() self.setLayout(self._layout) self._list_widget = ListWidget(parent=self) self._list_widget.itemSelectionChanged.connect( self.itemSelectionChangedSlot) self._layout.addWidget(self._list_widget) self._add_entry_button = QtGui.QPushButton("Add entry", parent=self) self._add_entry_button.clicked.connect(self.addEntryClicked) self._layout.addWidget(self._add_entry_button) self._remove_entry_button = QtGui.QPushButton("Remove entry", parent=self) self._remove_entry_button.clicked.connect(self.removeEntryClicked) self._layout.addWidget(self._remove_entry_button)
def __init__(self, parent=None): super().__init__(parent) self.widgets = [] self.setCentralWidget(QtGui.QStackedWidget(self)) self.listwidget = ListWidget(self) self.centralWidget().addWidget(self.listwidget) self.centralWidget().setCurrentIndex(0) self.setWindowTitle("Bent File Explorer") self.setupMenuBar() self.show() self.listwidget.populate_widget()
def _initUI(self): self._layout=QtGui.QVBoxLayout() self.setLayout(self._layout) self._list_widget = ListWidget(parent=self) self._list_widget.itemSelectionChanged.connect(self.itemSelectionChangedSlot) self._layout.addWidget(self._list_widget) self._add_entry_button = QtGui.QPushButton("Add entry", parent=self) self._add_entry_button.clicked.connect(self.addEntryClicked) self._layout.addWidget(self._add_entry_button) self._remove_entry_button = QtGui.QPushButton("Remove entry", parent=self) self._remove_entry_button.clicked.connect(self.removeEntryClicked) self._layout.addWidget(self._remove_entry_button)
def __init__(self, s, account): super(QQ, self).__init__() self.s = s self.account = account self.setWindowTitle('1806聊天室') self.setWindowFlags(Qt.Dialog) self.setMinimumSize(200, 600) self.setWhatsThis('这个一个模拟QQ软件') self.setWindowIcon(QIcon('./res/log.ico')) pListWidget = ListWidget(self.s, self.account, 'F') pListWidget1 = ListWidget(self.s, self.account, 'G') dic_list = {'listwidget': pListWidget, 'groupname': "我的好友"} dic_list1 = {'listwidget': pListWidget1, 'groupname': "我的群"} pListWidget.setListMap(dic_list) pListWidget1.setListMap(dic_list1) self.addItem(pListWidget, "我的好友") self.addItem(pListWidget1, '我的群')
class AddressBookView(QtGui.QWidget): def __init__(self, *args, **kwargs): super(QtGui.QWidget, self).__init__(*args, **kwargs) self._initUI() self._model = None self._selection_model = None def _initUI(self): self._layout = QtGui.QVBoxLayout() self.setLayout(self._layout) self._list_widget = ListWidget(parent=self) self._list_widget.itemSelectionChanged.connect( self.itemSelectionChangedSlot) self._layout.addWidget(self._list_widget) self._add_entry_button = QtGui.QPushButton("Add entry", parent=self) self._add_entry_button.clicked.connect(self.addEntryClicked) self._layout.addWidget(self._add_entry_button) self._remove_entry_button = QtGui.QPushButton("Remove entry", parent=self) self._remove_entry_button.clicked.connect(self.removeEntryClicked) self._layout.addWidget(self._remove_entry_button) def addEntryClicked(self): self._model.addEntry(name=randomName(), phone="12345") def removeEntryClicked(self): print "remove" def itemSelectionChangedSlot(self, index, selected): print "itemSelectionChangedSlot ", index, selected self._selection_model.setSelected(index, selected) def notify(self, notifier): if notifier is self._model: self._list_widget.clear() for i in range(self._model.numEntries()): entry = self._model.getEntry(i) string = "%s (%s)" % (entry["name"], entry["phone"]) self._list_widget.addItem(string) if notifier is self._model or notifier is self._selection_model: for i in range(self._model.numEntries()): self._list_widget.setItemSelected( i, self._selection_model.isSelected(i)) def setModels(self, model, selection_model): self._model = model self._selection_model = selection_model self._model.register(self) self._selection_model.register(self)
class AddressBookView(QtGui.QWidget): def __init__(self, *args, **kwargs): super(QtGui.QWidget, self).__init__(*args, **kwargs) self._initUI() self._model = None self._selection_model = None def _initUI(self): self._layout=QtGui.QVBoxLayout() self.setLayout(self._layout) self._list_widget = ListWidget(parent=self) self._list_widget.itemSelectionChanged.connect(self.itemSelectionChangedSlot) self._layout.addWidget(self._list_widget) self._add_entry_button = QtGui.QPushButton("Add entry", parent=self) self._add_entry_button.clicked.connect(self.addEntryClicked) self._layout.addWidget(self._add_entry_button) self._remove_entry_button = QtGui.QPushButton("Remove entry", parent=self) self._remove_entry_button.clicked.connect(self.removeEntryClicked) self._layout.addWidget(self._remove_entry_button) def addEntryClicked(self): self._model.addEntry(name=randomName(), phone="12345" ) def removeEntryClicked(self): print "remove" def itemSelectionChangedSlot(self, index, selected): print "itemSelectionChangedSlot ", index, selected self._selection_model.setSelected(index, selected) def notify(self, notifier): if notifier is self._model: self._list_widget.clear() for i in range(self._model.numEntries()): entry = self._model.getEntry(i) string = "%s (%s)" % (entry["name"], entry["phone"]) self._list_widget.addItem(string) if notifier is self._model or notifier is self._selection_model: for i in range(self._model.numEntries()): self._list_widget.setItemSelected(i, self._selection_model.isSelected(i)) def setModels(self, model, selection_model): self._model = model self._selection_model = selection_model self._model.register(self) self._selection_model.register(self)
def initUI(self): self.setGeometry(0, 0, 1024, 768) self.setWindowTitle('pwd') #------------------------------------------ # ListWidget #------------------------------------------ self.listWidget = ListWidget() #------------------------------------------ # #------------------------------------------ # self.model = QtGui.QFileSystemModel() # self.model.setRootPath("/home/alex/") # self.listWidget.setModel_(self.model) #------------------------------------------ # Actions #------------------------------------------ self.home = QtGui.QAction(QtGui.QIcon("../res/icones/basic_home.svg"), "home", self) self.home.triggered.connect(self.listWidget.setPath) self.toggleView = QtGui.QAction( QtGui.QIcon("../res/icones/arrows_hamburger 2.svg"), "toggleView", self) self.toggleView.triggered.connect(self.listWidget.toggleMode) self.refreshAction = QtGui.QAction( QtGui.QIcon('../res/icones/arrows_clockwise.svg'), '&Refresh', self) self.refreshAction.setShortcut('Ctrl+R') self.refreshAction.setStatusTip('Refresh') self.showStatusBarAction = QtGui.QAction('&Show Status Bar', self) # self.showStatusBarAction.setShortcut('Ctrl+R') self.showStatusBarAction.setStatusTip('Show Status Bar') self.showStatusBarAction.triggered.connect( self.toggleViewStatusBarEvent) self.showToolBarAction = QtGui.QAction('&Show Tool Bar', self) # self.showToolBarAction.setShortcut('Ctrl+R') self.showToolBarAction.setStatusTip('Show Tool Bar') self.showToolBarAction.triggered.connect(self.toggleViewToolBarEvent) self.exitAction = QtGui.QAction( QtGui.QIcon('../res/icones/arrows_remove.svg'), '&Exit', self) self.exitAction.setShortcut('Ctrl+Q') self.exitAction.setStatusTip('Exit') self.exitAction.triggered.connect(QtGui.qApp.quit) #------------------------------------------ # Menu Bar #------------------------------------------ self.fileMenu = self.menuBar().addMenu('&File') # self.fileMenu.addAction(self.restartAction) self.fileMenu.addAction(self.exitAction) self.viewMenu = self.menuBar().addMenu('&View') self.viewMenu.addAction(self.showToolBarAction) self.viewMenu.addAction(self.showStatusBarAction) self.helpMenu = self.menuBar().addMenu('&Help') self.helpMenu.addAction("About") #------------------------------------------ # ToolBar #------------------------------------------ self.toolBar = self.addToolBar("Main") self.toolBar.addAction(self.home) self.toolBar.addAction(self.toggleView) self.toolBar.addAction(self.refreshAction) self.toolBar.addAction(self.exitAction) # self.toolBar.actionTriggered[QAction].connect(self.toolbtnpressed) #------------------------------------------ # Terminal #------------------------------------------ # self.terminalWidget = TerminalWidget(self) #------------------------------------------ # StatusBar #------------------------------------------ self.statusBar().showMessage("Ready") #------------------------------------------ # Central Widget #------------------------------------------ layout = QtGui.QVBoxLayout() layout.setMargin(0) layout.addWidget(self.listWidget) # layout.addWidget(self.terminalWidget) self.centralWidget = QtGui.QWidget() self.centralWidget.setLayout(layout) self.setCentralWidget(self.centralWidget) self.show()
class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.widgets = [] self.setCentralWidget(QtGui.QStackedWidget(self)) self.listwidget = ListWidget(self) self.centralWidget().addWidget(self.listwidget) self.centralWidget().setCurrentIndex(0) self.setWindowTitle("Bent File Explorer") self.setupMenuBar() self.show() self.listwidget.populate_widget() def setCurrentIndex(self, index): self.centralWidget().setCurrentIndex(index) def makeMenuBarEntry(self, parent_menu, parent_dict): for key in parent_dict.keys(): menu = QtGui.QMenu(key, self) sub = dict[key] if isinstance(sub, dict): parent_menu.addMenu(makeMenuBarEntry(new_menu, sub)) elif isinstance(sub, str): parent_menu.addActions() else: print("error, something unique lctauet") sys.exit("unknown type") def setupMenuBar(self): menu_layout = { "menu":{ "quit":{} } } menu = makeMenuBarEntry(self.menuBar(), menu_layout) menu = QtGui.QMenu("menu", self) search = QtGui.QMenu("search", self) view = QtGui.QMenu("view", self) actions = [] actions.append(QtGui.QAction("quit", menu)) actions[-1].triggered.connect(QtGui.qApp.quit) menu.addActions(actions) actions = [] search.addActions(actions) actions = [] view.addActions(actions) self.menuBar().addMenu(menu) self.menuBar().addMenu(search) self.menuBar().addMenu(view) def searchPrompt(self, recursive): string, bool = QtGui.QInputDialog.getText(self, "enter search string", "searches are fun") if bool and string: if isinstance(self.centralWidget().currentWidget(), ListWidget): #print(self.centralWidget().currentWidget(), " is an instance of ", ListWidget) directory = str(self.centralWidget().currentWidget().path) else: #print(self.centralWidget().currentWidget(), " is not an instance of ", ListWidget) directory = QtGui.QFileDialog.getExistingDirectory() result = searchInterface.getSearchResults(0, directory, str(string), recursive) self.listwidget.replaceItems(result) def searchReplacePrompt(self, recursive): search, boolone = QtGui.QInputDialog.getText(self, "search and replace", "enter string for search") replace, booltwo = QtGui.QInputDialog.getText(self, "search and replace", "enter string for replace") if boolone and booltwo and search: if isinstance(self.centralWidget().currentWidget(), ListWidget): #print(self.centralWidget().currentWidget(), " is an instance of ", ListWidget) directory = str(self.centralWidget().currentWidget().path) else: #print(self.centralWidget().currentWidget(), " is not an instance of ", ListWidget) directory = QtGui.QFileDialog.getExistingDirectory() result = searchInterface.getPotentialRenames(0, directory, str(search), str(replace), recursive) for key in result.keys(): rename_confirm = QtGui.QMessageBox(self) rename_confirm.setText("going to rename\n{} to\n{}".format(key, result[key])) rename_confirm.setInformativeText("Is this OK?") rename_confirm.setStandardButtons(QtGui.QMessageBox.Cancel | QtGui.QMessageBox.Ok) rename = rename_confirm.exec_() if rename == QtGui.QMessageBox.Ok: # filter out empty string just in case path ended with '/' thing = list(filter(lambda y: y, result[key].split("/")))[-1] # test for existance of file (for collision) if os.path.isfile(result[key]) or os.path.isdir(result[key]): overwrite_confirm = QtGui.QMessageBox(self) overwrite_confirm.setText("the file "+thing+" already exists in the directory") overwrite_confirm.setInformativeText("Do you want to overwrite the file?") overwrite_confirm.setStandardButtons(QtGui.QMessageBox.Cancel | QtGui.QMessageBox.Ok) overwrite = overwrite_confirm.exec_() if overwrite == QtGui.QMessageBox.Ok: #searchInterface.renameFiles(result) os.rename(key, result[key])