Tôi đã tìm kiếm trực tuyến không có kết quả. Có ai biết làm thế nào để truy cập vào một nút trong một hộp nút (tạo ra bằng cách sử dụng "Dialog với Buttons Right" mẫu)?Làm cách nào để thay đổi các thuộc tính của các nút trong các hộp nút trong Qt Designer?
Trả lời
Trong trình thiết kế, chọn nút OK
hoặc Cancel
. Sau đó, mở trình chỉnh sửa thuộc tính và cuộn xuống phần QDialogButtonBox
. Sau đó, bạn có thể mở rộng mục standardButtons
để xem các nút khác nhau khả dụng. Các thuộc tính khác, chẳng hạn như thuộc tính centerButtons
, cũng có sẵn.
Tuy nhiên, nhà thiết kế cung cấp cho bạn rất ít quyền kiểm soát hộp nút.
Trong mã, bạn có thể thực hiện nhiều việc khác, chẳng hạn như thay đổi văn bản xuất hiện trên "nút tiêu chuẩn". Từ số documentation:
findButton = new QPushButton(tr("&Find"));
findButton->setDefault(true);
moreButton = new QPushButton(tr("&More"));
moreButton->setCheckable(true);
moreButton->setAutoDefault(false);
buttonBox = new QDialogButtonBox(Qt::Vertical);
buttonBox->addButton(findButton, QDialogButtonBox::ActionRole);
buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole);
Miễn là bạn đặt tên cho hộp nút trong thiết kế, bạn có thể đặt các thuộc tính này trong mã.
Tôi đang viết câu trả lời này cho cộng đồng Python. Tôi đang sử dụng PySide và phải đối mặt với một vấn đề tương tự. Tôi có một QDialogButtonBox và tôi muốn có các nút của riêng tôi thay vì các nút mặc định.
Tôi đang sử dụng PySide ít nhiều là bản sao chính xác của mã C++, vì vậy tôi tin rằng các nhà phát triển C++ khác cũng có thể nhận được thứ gì đó từ đó.
đây thế nào tôi sẽ làm điều đó:
my_ok_button = QtGui.QPushButton("My Ok Button")
my_cancel_button = QtGui.QPushButton("My Cancel Button")
ok_cancel_button = QtGui.QDialogButtonBox(QtCore.Qt.Horizontal)
ok_cancel_button.addButton(my_ok_button, QtGui.QDialogButtonBox.ButtonRole.AcceptRole)
ok_cancel_button.addButton(my_cancel_button, QtGui.QDialogButtonBox.ButtonRole.RejectRole)
Sau đó tôi sẽ chèn hộp nút của tôi để bố trí của tôi như ususal:
layout.addWidget(ok_cancel_button, 1, 1)
Bây giờ sau trong mã của tôi, tôi có thể làm bất cứ điều gì với nút của tôi . Cho phép thay đổi tên gọi của nó:
my_ok_button.setText("Some Other Name")
Vì vậy, sau đó điều cần lưu ý ở đây là:
bạn phải thiết lập vai trò của các nút trong addButton() phương pháp nếu bạn muốn sử dụng chức năng trao bằng các nút tiêu chuẩn. Ví dụ. nếu bạn
muốn làm điều gì đó như dưới đây, bạn cần có vai trò nút được đặt.ok_cancel_button.accepted.connect (self.ok_method_handler) ok_cancel_button.rejected.connect (self.close)
Tôi đoán các mã cho các mẫu được tạo ra và được lưu trữ trong một số tập tin để tôi có thể đi vào tập tin đó và thay đổi các thuộc tính nút mà tôi cần? –
Không chỉnh sửa tệp đã tạo. Có nhiều cách khác nhau để làm việc với mã được tạo ra được ghi lại trên trang [Tạo và sử dụng các thành phần cho thiết kế Qt] (http://doc.trolltech.com/4.6/qtdesigner-components.html). –
@KalebPederson Nếu tôi gắn thêm nút OK/Cancel, không thể nhấp vào các nút bên trong. –