반응형
▣ sector 선택하기
Ticker.xlsx로 부터 sector 이름 가져오기 기능을 개발 합니다. Qt Designer로 부터 " stock.ui를 만듭니다. Qt Designer 위젯 "Combo Box"를 선택 합니다. "Combo Box"에 엑셀 파일에 있는 sector 값들을 표시 합니다.
![]() |
![]() |
ticker.xlsx
0.16MB
stock.ui
0.00MB
※ "Combo Box" 선택 기능 파이썬 코드
import sys
import pandas as pd
from PyQt6.QtWidgets import QApplication, QMainWindow
from PyQt6 import uic
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# .ui 파일을 직접 로드
uic.loadUi('stock.ui', self) # stock.ui 파일 경로
self.load_sectors()
def load_sectors(self):
try:
df = pd.read_excel('ticker.xlsx', sheet_name='tickersheet')
sectors = df.iloc[1:, 2].dropna().unique().tolist() # C열(C2 아래) 데이터
self.comboBoxsector.addItems(sectors) # UI에서 comboBoxsector에 직접 접근
except Exception as e:
print(f"Error loading sectors: {e}")
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
※ 선택 항목의 엑셀 값 가져오는 파이썬 코드
import sys
import pandas as pd
from PyQt6.QtWidgets import QApplication, QMainWindow, QTableWidgetItem
from PyQt6 import uic
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# .ui 파일 직접 로드
uic.loadUi('stock.ui', self) # stock.ui 파일 경로
self.load_sectors()
# 콤보박스 선택 이벤트 연결
self.comboBoxsector.currentTextChanged.connect(self.update_ticker_table)
def load_sectors(self):
try:
df = pd.read_excel('ticker.xlsx', sheet_name='tickersheet')
sectors = df.iloc[1:, 2].dropna().unique().tolist() # C열(C2 아래) 데이터
self.comboBoxsector.addItems(sectors)
# 엑셀 데이터를 클래스 변수로 저장하여 재사용
self.df = df
except Exception as e:
print(f"Error loading sectors: {e}")
def update_ticker_table(self, selected_sector):
try:
# 테이블 위젯 초기화
self.tableWidgetsetor.setRowCount(0)
# 선택된 섹터에 해당하는 데이터 필터링
filtered_df = self.df[self.df.iloc[:, 2] == selected_sector]
# A, B, C, D, E, F, G, H열 데이터 추출
data = filtered_df.iloc[:, [0, 1, 2, 3, 4, 5, 6, 7]].dropna().values.tolist()
# 테이블 위젯에 데이터 추가
self.tableWidgetsetor.setRowCount(len(data))
for row, row_data in enumerate(data):
for col, value in enumerate(row_data):
self.tableWidgetsetor.setItem(row, col, QTableWidgetItem(str(value)))
except Exception as e:
print(f"Error updating ticker table: {e}")
if __name__ == '__main__':
app = QApplication(sys.argv) # QApplication 사용
window = MainWindow()
window.show()
sys.exit(app.exec())
코드 실행 결과


반응형
'personal activity > stock' 카테고리의 다른 글
| (052GS건설690) 주식 모으기 (0) | 2025.09.19 |
|---|---|
| sector] 종목 순위 정의 하기 #2 (0) | 2025.09.16 |
| 종목 이름 가져오기]ticker, name, sector 응용 #2 (0) | 2025.09.14 |
| 종목 이름 가져오기] ticker, name, sector 응용 #1 (2) | 2025.09.13 |
| 주식이름 가져오기] pykrx 라이브러리 (0) | 2025.09.13 |

