반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 네이버매물크롤링
- 파이썬 환경설정
- 파이썬 네이버 로그인
- 네이버 로그인 캡챠해결
- 파이썬 가상환경 설치방법
- pywinauto 윈도우제어
- pywinauto
- pycdc.exe
- Element is not clickable at point
- Python
- uipath 입문
- 가상환경설치
- pycdas.exe
- Uipath 기초
- 파이썬 가상환경 설치
- 파이썬네이버부동산
- Selenium 셀렉터잡기
- vscode venv 설치
- 커머스API
- 네이버 로그인 영수증 해결
- venv 설치
- UiPath
- pywinauto 윈도우
- 네이버커머스API
- Uipath 설치방법
- 왕초보 파이썬 실행
- 날짜 정규식
- selenium
- 네이버 로그인 하기
- 네이버부동산크롤링
Archives
- Today
- Total
콘솔워크
[pyqt5] 로그창이 있는 기본적인 형태의 GUI 본문
반응형
pip install pyqt5 설치 필요
from tkinter import * # __all__
import sys
from tracemalloc import start
import warnings
warnings.simplefilter("ignore", UserWarning)
sys.coinit_flags = 2
from tkinter import HORIZONTAL, Button, Scrollbar
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from datetime import *
class MainUI(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def center(self):
qr = self.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
def log_append(self, text):
now = str(datetime.now())[0:-7]
self.browser.append(f'[{now}] {text}')
def initUI(self):
# 상단 좌측
top_left_groupbox = QGroupBox('상단 좌측')
top_left_inner_layout = QHBoxLayout()
top_left_groupbox.setLayout(top_left_inner_layout)
# 상단 우측
top_right_groupbox = QGroupBox('상단 우측')
top_right_inner_layout = QHBoxLayout()
top_right_groupbox.setLayout(top_right_inner_layout)
# 중단 좌측
center_left_groupbox = QGroupBox('중단 좌측')
center_left_inner_layout = QHBoxLayout()
center_left_groupbox.setLayout(center_left_inner_layout)
# 중단 우측
center_right_groupbox = QGroupBox('중단 우측')
center_right_inner_layout = QHBoxLayout()
center_right_groupbox.setLayout(center_right_inner_layout)
# 하단 (로그)
bottom_groupbox = QGroupBox('로그')
self.browser = QTextBrowser()
bottom_inner_layout = QGridLayout()
bottom_inner_layout.addWidget(self.browser)
bottom_groupbox.setLayout(bottom_inner_layout)
# 레이아웃 배치
top_layout = QHBoxLayout()
top_layout.addWidget(top_left_groupbox, 1)
top_layout.addWidget(top_right_groupbox, 1)
center_layout = QHBoxLayout()
center_layout.addWidget(center_left_groupbox, 1)
center_layout.addWidget(center_right_groupbox, 1)
bottom_layout = QHBoxLayout()
bottom_layout.addWidget(bottom_groupbox)
layout = QGridLayout()
layout.addLayout(top_layout, 0, 0)
layout.addLayout(center_layout, 1, 0)
layout.addLayout(bottom_layout, 2, 0)
self.setLayout(layout)
# 앱 기본 설정
self.setWindowTitle('GUI sample')
self.resize(1000, 800)
self.center()
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MainUI()
sys.exit(app.exec_())
요소를 추가하고싶으면 각각의 inner_layout에 addWidget으로 추가해주면 된다.
반응형
'프로그래밍 > python' 카테고리의 다른 글
str int 형변환 에러 invalid literal for int() with base 10:'' (0) | 2022.07.15 |
---|---|
파일 경로가 적혀있는 목록(list)에서 경로를 확인해서 파일이 없을 경우 목록에서 제외하는 함수 (0) | 2022.07.14 |
pandas 엑셀에서 특정 열을 지정해서 그 열에 있는 데이터 종류의 갯수를 구하는 함수 (0) | 2022.07.12 |
opencv 이미지 명암 무작위 설정 (0) | 2022.07.11 |
strptime 문자열을 datetime 형태로 바꾸기 (0) | 2022.07.08 |