2015-02-25 16 views
6

Câu hỏi nhanh - Tôi đang làm việc trên GUI trong pyqt và nó có hai tab. Ngay bây giờ tab thứ hai luôn mở khi khởi động, mà tôi nghĩ là bởi vì nó chạy một hàm để tìm một tên tệp để gắn trong một QLineEdit. Tôi thực sự muốn tab đầu tiên xuất hiện khi khởi động. Tôi sẽ đi đâu để tới đó?PyQt - buộc một tab xuất hiện đầu tiên?

Trả lời

9

Nếu bạn xây dựng giao diện người dùng bằng Trình tạo Qt, tab đã hoạt động khi bạn lưu giao diện người dùng được đặt làm tab mặc định. Bạn có thể sửa lỗi này bằng cách quay trở lại Qt Creator, chọn tab bạn muốn làm mặc định và lưu lại và tạo lại tệp .ui thành .py của bạn.

Hoặc, bạn có thể sử dụng QTabWidget s setCurrentIndex(int).

Đặt int bằng chỉ mục của tab bạn muốn hiển thị.

Ví dụ:

from PyQt4 import QtGui 
from PyQt4 import QtCore 
import sys 

def main(): 
    app  = QtGui.QApplication(sys.argv) 
    tabs = QtGui.QTabWidget()  
    tab1 = QtGui.QWidget() 
    tab2 = QtGui.QWidget() 
    tab3 = QtGui.QWidget() 
    tabs.addTab(tab1,"Tab 1") 
    tabs.addTab(tab2,"Tab 2") 
    tabs.addTab(tab3,"Tab 3") 
    tabs.setWindowTitle('PyQt QTabWidget Add Tabs and Widgets Inside Tab') 
    tabs.show() 

    # This will set "Tab 2" to be shown when the application launches 
    tabs.setCurrentIndex(1) 
    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 

này sẽ khởi chạy một cửa sổ có "Tab 2" hoạt động.

Tab 2 is active

Nếu dòng dưới đây được lấy ra, sau đó "Tab 1" đang hoạt động lúc khởi động

tabs.setCurrentIndex(1) 
+0

Cảm ơn bạn, mà cố định nó! –

Các vấn đề liên quan