PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
2022-01-02 13:48:55
PyQt5は、優れたデスクトップアプリケーションを実装するために使用できる、強力なGUIツールの1つです。簡単なログインページが、あなたが始めるのに役立つことを願っています。
業務に必要な拡張パッケージをすべてインポートする。
import sys # System parameter manipulation
from PyQt5.QtWidgets import * # Module contains classes that create a classic desktop style user interface providing a set of UI elements
from PyQt5.QtCore import * # This module is used to handle time, files and directories, various data types, streams, URLs, MIME types, threads or processes
QtGui import * # Contains classes for window system integration, event handling, 2D graphics, basic imaging, fonts and text
メインインターフェイスウィンドウを作成します。
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
'''
constructor, initialize the parameter properties
:param args:
:param kwargs:
'''
super(). __init__(*args, **kwargs)
self.setWindowTitle('Main function page')
self.setFixedWidth(600)
self.setFixedHeight(600)
ログインダイアログを作成します。
class LoginDialog(QDialog):
def __init__(self, *args, **kwargs):
'''
Constructor to initialize the contents of the login dialog
:param args:
:param kwargs:
'''
super(). __init__(*args, **kwargs)
self.setWindowTitle('Welcome to login') # set title
self.resize(200, 200) # set width, height
self.setFixedSize(self.width(), self.height())
self.setWindowFlags(Qt.WindowCloseButtonHint) # Set the button to hide the close X
'''
Define interface control settings
'''
self.frame = QFrame(self) # Initialize the Frame object
self.verticalLayout = QVBoxLayout(self.frame) # Set the horizontal layout
self.verticalLayout
self.login_id = QLineEdit() # Define username input box
self.login_id.setPlaceholderText("Please enter your login") # Set the default prompt to be displayed
self.verticalLayout.addWidget(self.login_id) # Add the login account settings to the page control
self.passwd = QLineEdit() # Define the password input box
self.passwd.setPlaceholderText("Please enter your login password") # Set the default prompt to be displayed
self.verticalLayout.addWidget(self.passwd) # Add this password setting to the page control
self.button_enter = QPushButton() # Define the login button
self.button_enter.setText("login") # Show button value as login
self.verticalLayout.addWidget(self.button_enter) # Add the button to the page control
self.button_quit = QPushButton() # Define the return button
self.button_quit.setText("return") # button display value for return
self.verticalLayout.addWidget(self.button_quit) # Add the button to the page control
# Bind button events
self.button_enter.clicked.connect(self.button_enter_verify)
self.button_quit.clicked.connect(
QCoreApplication.instance().quit) # return button bound to exit
def button_enter_verify(self):
# verify that the account is correct
if self.login_id.text() ! = "admin":
print("test1")
return
# Check if the password is correct
if self.passwd.text() ! = "admin@1234":
print("test2")
return
# Validation passed, set the QDialog object state to allowed
self.accept()
最後に、mian entry機能でアプリを起動します。
if __name__ == "__main__":
# Create the application
window_application = QApplication(sys.argv)
# Set the login window
login_ui = LoginDialog()
# Check if authentication passed
if login_ui.exec_() == QDialog.Accepted:
# Initialize the main function window
main_window = MainWindow()
# Show the window
main_window.show()
# Set the application to exit
sys.exit(window_application.exec_())
PyQt5のユーザーログインGUIとログイン後のジャンプについての記事は以上となります。PyQt5のユーザーログインGUIについては、過去の記事を検索するか、引き続き以下の記事を参照してください。
関連
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み】TypeError: cannot unpack non-iterable int objec
-
[解決済み】plt.close()とplt.clf()の違いについて)
-
[解決済み】Pandasの「同一ラベルのDataFrameオブジェクトしか比較できない」エラーについて
-
[解決済み】押されたキーをpythonスクリプトで待たせる方法とは?
-
[解決済み] CUDAをpytorchで使う?
-
[解決済み] Python3 で dict_keys の要素にインデックスでアクセスする
-
[解決済み] TypeError: 最初の引数はpandasオブジェクトのイテラブルでなければなりません、あなたは "DataFrame" 型のオブジェクトを渡しました。
-
[解決済み] JSON ValueError: プロパティ名:1行目2列目(char 1)が必要です。
-
[解決済み] pkg_resources という名前のモジュールがない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】w, h = template.shape[::-1] 結果、Value Errorになる 解凍する値が多すぎる
-
[解決済み】heroku: このアプリのデフォルト言語が検出されない
-
レポート libc++abi.dylib: NSException 型の捕捉されない例外で終了する pycharm
-
[解決済み] TypeError: 'str' と 'list' オブジェクトをメールに連結することはできません。
-
[解決済み] tf.compat.v1.train.exponential_decay: グローバルステップ = 0
-
[解決済み] getitem__ メソッドを理解する
-
[解決済み] このラムダ関数がどのように機能するかを理解する
-
[解決済み] matplotlibのpyplotの凡例で線の幅を変更する [重複] [重複
-
[解決済み] Python 2.7でpylabを関数レベルでインポートするには、どのような方法が望ましいですか?
-
Python3でクローラーを書くときに遭遇する問題とその解決方法