나는 시네마 좌석을 나타 내기 위해 qpushbutton
을 너무 많이 만들었습니다. 사용자가 좌석을 구입 한 후에 나는이 자리를 비활성화했습니다. 이전에 비활성화 된 버튼이 비활성화 된 것을 확인하기 만하면됩니다. 이 비활성화 된 버튼을 txt 파일에 저장하고 이름을 읽었지만 위젯 Qpushbuttons로 할당 할 수 없습니다. 그것을 해결할 방법이 있습니까?프로그램을 다시 실행할 때 비활성화 된 버튼을 비활성화하는 방법
0
A
답변
1
데이터 구조 문제만큼이나 버튼 문제는 아닙니다. 어떻게 든 사용 가능한 좌석과 예약석의 부기를 돕는 데이터 구조에 단추/좌석을 연결해야합니다. 일단 프로그램을 닫으면 데이터를 파일이나 데이터베이스에 기록한 다음 응용 프로그램을 열 때 다시 읽을 수 있습니다. 예약 된 자리의 버튼을 다시 비활성화 할 수 있습니다.
// list of all seats in order (true means seat is taken, false seat is still free)
QList<bool> seats;
// set some test values
seats.append(true);
seats.append(true);
seats.append(false);
seats.append(true);
// file where the seats will be stored
QFile file("seats.dat");
// save to file
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out << seats;
file.close();
// remove all seats (just for testing)
seats.clear();
// read from file
file.open(QIODevice::ReadOnly);
QDataStream in(&file);
in >> seats;
file.close();
// simple debug output off all seats
qDebug() << seats;
// you could set the buttons enabled state like this
QList<QPushButton*> buttons; // list of your buttons in the same order as the seat list of course
for (int i = 0; i < seats.count(); ++i)
buttons[i]->setEnabled(!seats.at(i)); // disables all seats which are already taken
이 떨어져 좌석의 전체 목록을 직렬화하는 QDataStream를 사용 물론 단순한 솔루션입니다,하지만 당신은 할 수 있습니다
내가 Qt를 함께 몇 가지 빠른 예를했습니다
1
는, 내가 당신을 도울 것입니다 희망
관련 문제
- 1. 프로그램을 다시 실행할 때 문제가 발생했습니다.
- 2. 체크 박스가 선택되었을 때 버튼을 비활성화하는 방법
- 3. 모든 버튼을 비활성화하는 방법
- 4. 동적으로 버튼을 비활성화하는 방법
- 5. 동적으로 버튼을 비활성화하는 방법
- 6. Jquery에서 라디오 버튼을 비활성화하는 방법
- 7. Java, Android의 모든 버튼을 비활성화하는 방법
- 8. PHP를 사용하여 브라우저 다시 버튼을 비활성화
- 9. 일부 GtkMenu 항목을 비활성화/비활성화하는 방법
- 10. QPushButton을 비활성화하는 방법
- 11. Apache OFBiz에서 응용 프로그램을 비활성화하는 방법
- 12. 양식을 오류없이 제출할 때 제출 버튼을 비활성화하는 방법
- 13. 양식을 제출할 때 버튼을 비활성화/바꿉니다.
- 14. AVD에서 홈 버튼을 비활성화 (또는 숨기기)하는 방법
- 15. 강제로이 응용 프로그램을 실행할 때 닫기
- 16. 셀렌에서 버튼을 활성화 또는 비활성화하는 방법
- 17. JavaScript를 사용하여 브라우저의 뒤로 버튼을 비활성화하는 방법
- 18. 프로그래밍 방식으로 wpf에서 datagridrow의 버튼을 비활성화하는 방법
- 19. 자바 스크립트를 사용하여 플래시 버튼을 비활성화하는 방법
- 20. QDoubleSpinBox 내에서 위/아래 버튼을 비활성화하는 방법
- 21. 내비게이션의 오른쪽 바 버튼을 비활성화하는 방법
- 22. Netbeans 6.8 응용 프로그램을 실행할 때 NoClassDefFoundError
- 23. py2exe 응용 프로그램을 실행할 때 MemoryLoadError
- 24. 때 버튼을 눌러
- 25. jquery로 제출 버튼을 비활성화하는 방법은 무엇입니까?
- 26. 기본 qpushbutton을 비활성화하는 방법
- 27. 콘솔 옵션을 비활성화하는 방법
- 28. 프로그램을 다시 시작하지 않고 AspectJ를 비활성화하는 방법은 무엇입니까?
- 29. 응용 프로그램을 실행할 때 그림 상자의 크기를 변경하는 방법
- 30. Silverlight 응용 프로그램을 실행할 때 브라우저 충돌을 디버그하는 방법
텍스트 파일에서 버튼 이름을 읽었지만 qpushbutton 또는 qpushbutton 이름으로 할당 할 수 없습니다. 그것은 qpushbutton으로 저장 될지도 모르지만 나는 그것을하는 방법을 모른다. – Cengaver
왜 혼자 힘들어합니까? 정말 간단한 (또는 단순한) 솔루션은 어떻습니까? 100 석이 있다고 가정 해보십시오. 두 벡터를 만듭니다. 하나는 100 개의 부울 (true : 예약 됨, false : 사용 가능)이고 하나는 100 (참조) 버튼이 있습니다. 좌석 3은 예약되어 있습니까? 그런 다음 하나의 벡터에서 부울 3을 true로 설정하고 다른 벡터에서 버튼 3을 비활성화하십시오. 저장하고로드하는 것은 불리언 (또는 당신이 그것을 위해 사용하고자하는 데이터 타입)입니다. 이것을 말하는 것은 하나의/유일한/최선의 방법이지만, 시작해야합니다. – Bart
네 말이 맞지만 어떻게 해야할지 모르겠다. :) 미안하지만 너를 방해한다. – Cengaver