本文整理汇总了Python中PyQt5.QtWidgets.QVBoxLayout.insertStretch方法的典型用法代码示例。如果您正苦于以下问题:Python QVBoxLayout.insertStretch方法的具体用法?Python QVBoxLayout.insertStretch怎么用?Python QVBoxLayout.insertStretch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QVBoxLayout
的用法示例。
在下文中一共展示了QVBoxLayout.insertStretch方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: MainWindow
# 需要导入模块: from PyQt5.QtWidgets import QVBoxLayout [as 别名]
# 或者: from PyQt5.QtWidgets.QVBoxLayout import insertStretch [as 别名]
class MainWindow(QMainWindow):
def __init__(self, client_socket, process_events_method):
super().__init__()
self.username = config.user["username"]
self.client_socket = client_socket
self.client_socket.recv_message.connect(self.recvMessage)
self.process_events_method = process_events_method
self.chats = {}
self.send_on_enter = True
self.initMenubar()
self.initUI()
for chat in config.chats:
self.createChat(chat, config.chats[chat]["participants"])
def initMenubar(self):
self.createChatAction = QAction("&Create Chat", self)
#self.exitAction.setShortcut("Ctrl+Q")
self.createChatAction.triggered.connect(self.createChat)
self.addFriendAction = QAction("&Add Friend", self)
self.addFriendAction.triggered.connect(self.addFriend)
self.menubar = self.menuBar()
self.chatMenu = self.menubar.addMenu("&Chat")
self.chatMenu.addAction(self.createChatAction)
self.friendMenu = self.menubar.addMenu("&Friend")
self.friendMenu.addAction(self.addFriendAction)
def initUI(self):
self.content = QWidget()
self.hbox = QHBoxLayout(self.content)
self.setCentralWidget(self.content)
self.friend_list = QListWidget()
self.friend_list.itemClicked.connect(self.friendClicked)
self.message_scroll = QScrollArea()
self.message_scroll.setWidgetResizable(True)
#TODO have a setting to disable this
self.message_scroll.verticalScrollBar().rangeChanged.connect(self.scrollBottom)
self.message_input = MessageInput()
self.message_input.sendMessage.connect(self.sendMessage)
self.message_split = QSplitter(Qt.Vertical)
self.message_split.addWidget(self.message_scroll)
self.message_split.addWidget(self.message_input)
self.main_split = QSplitter(Qt.Horizontal)
self.main_split.addWidget(self.friend_list)
self.main_split.addWidget(self.message_split)
self.hbox.addWidget(self.main_split)
self.show()
def addFriend(self, username=None):
if type(username) is bool:
add_friend_dialog = AddFriendDialog(self.client_socket)
add_friend_dialog.exec_()
if add_friend_dialog.selected_user == None:
return
username = add_friend_dialog.selected_user
self.chats[username] = {"participants":[username], "messages":[]}
#TODO we should probably sanatize these to prevent directory manipulation
friend = QListWidgetItem(QIcon(config.ICON_DIR + username + ".png"), username)
self.friend_list.addItem(friend)
def createChat(self, chat_name=None, participants=None):
if type(chat_name) is bool:
create_chat_dialog = CreateChatDialog()
create_chat_dialog.exec_()
if not create_chat_dialog.created_chat:
return
chat_name = create_chat_dialog.chat_name
participants = create_chat_dialog.participants
self.chats[chat_name] = {"participants":participants, "messages":[]}
self.friend_list.addItem(QListWidgetItem(chat_name))
def friendClicked(self, item):
self.loadMessages(str(item.text()))
def loadMessages(self, chat):
#self.clearMessages()
#TODO make the message history look pretty
#TODO consider storing a message history for each chat and switch between when needed
#TODO create a chat class and store the chat name as well as the participants there
#TODO index message histories by chat name
self.message_history = QVBoxLayout()
self.message_history.setSpacing(0)
self.message_history.setContentsMargins(0,0,0,0)
self.message_history.insertStretch(-1, 1)
self.message_history_container = QWidget()
self.message_history_container.setLayout(self.message_history)
self.message_scroll.setWidget(self.message_history_container)
#.........这里部分代码省略.........