mirror of
https://github.com/Xevion/tcp-chat.git
synced 2025-12-07 11:16:39 -06:00
improve nickname dialog (add text, placeholder), fix > 3 letters check, close dialog with window properly
This commit is contained in:
@@ -7,33 +7,14 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>449</width>
|
||||
<height>85</height>
|
||||
<height>98</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Maximum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="6" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
@@ -56,6 +37,36 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit">
|
||||
<property name="placeholderText">
|
||||
<string>Type your nickname...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Maximum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Please choose a nickname with 3 or more characters</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
||||
@@ -63,13 +63,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
super(MainWindow, self).__init__(*args, **kwargs)
|
||||
self.setupUi(self)
|
||||
self.show()
|
||||
self.closed = False
|
||||
|
||||
# Get Nickname
|
||||
while True:
|
||||
nicknameDialog = NicknameDialog(self)
|
||||
nicknameDialog.exec_()
|
||||
self.nickname = nicknameDialog.lineEdit.text().strip()
|
||||
if len(self.nickname) > 3:
|
||||
self.nicknameDialog = NicknameDialog(self)
|
||||
self.nicknameDialog.exec_()
|
||||
self.nickname = self.nicknameDialog.lineEdit.text().strip()
|
||||
if len(self.nickname) >= 3 or self.closed:
|
||||
break
|
||||
|
||||
# Connect to server
|
||||
@@ -92,6 +93,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
self.messages = []
|
||||
|
||||
def closeEvent(self, event):
|
||||
if self.nicknameDialog:
|
||||
self.closed = True
|
||||
self.nicknameDialog.close()
|
||||
event.accept() # let the window close
|
||||
|
||||
def eventFilter(self, obj, event):
|
||||
if event.type() == QEvent.KeyPress and obj is self.messageBox:
|
||||
if event.key() == Qt.Key_Return and self.messageBox.hasFocus():
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file '.\Nickname.ui'
|
||||
# Form implementation generated from reading ui file 'Nickname.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.2
|
||||
#
|
||||
@@ -14,21 +14,24 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
class Ui_NicknameDialog(object):
|
||||
def setupUi(self, NicknameDialog):
|
||||
NicknameDialog.setObjectName("NicknameDialog")
|
||||
NicknameDialog.resize(449, 85)
|
||||
NicknameDialog.resize(449, 98)
|
||||
self.gridLayout = QtWidgets.QGridLayout(NicknameDialog)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.lineEdit = QtWidgets.QLineEdit(NicknameDialog)
|
||||
self.lineEdit.setObjectName("lineEdit")
|
||||
self.gridLayout.addWidget(self.lineEdit, 1, 0, 1, 1)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||
self.gridLayout.addItem(spacerItem, 2, 0, 1, 1)
|
||||
self.buttonBox = QtWidgets.QDialogButtonBox(NicknameDialog)
|
||||
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Ok)
|
||||
self.buttonBox.setObjectName("buttonBox")
|
||||
self.gridLayout.addWidget(self.buttonBox, 4, 0, 1, 1)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1)
|
||||
self.gridLayout.addWidget(self.buttonBox, 6, 0, 1, 1)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout.addItem(spacerItem, 0, 0, 1, 1)
|
||||
self.lineEdit = QtWidgets.QLineEdit(NicknameDialog)
|
||||
self.lineEdit.setObjectName("lineEdit")
|
||||
self.gridLayout.addWidget(self.lineEdit, 2, 0, 1, 1)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||
self.gridLayout.addItem(spacerItem1, 4, 0, 1, 1)
|
||||
self.label = QtWidgets.QLabel(NicknameDialog)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(NicknameDialog)
|
||||
self.buttonBox.accepted.connect(NicknameDialog.accept)
|
||||
@@ -38,3 +41,5 @@ class Ui_NicknameDialog(object):
|
||||
def retranslateUi(self, NicknameDialog):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
NicknameDialog.setWindowTitle(_translate("NicknameDialog", "Dialog"))
|
||||
self.lineEdit.setPlaceholderText(_translate("NicknameDialog", "Type your nickname..."))
|
||||
self.label.setText(_translate("NicknameDialog", "Please choose a nickname with 3 or more characters"))
|
||||
|
||||
Reference in New Issue
Block a user