0
#include <QApplication>
int main() {
QApplication::setStyle("windows");
QApplication::setStyle("windows");
}
이 프로그램은 Segmentation fault (core dumped)
을 생성합니다. 내 qmake
버전은 4.7.2
입니다. Qt 버그입니까 아니면 내 버전이 너무 오래 되었습니까?QApplication :: style을 두 번 설정 한 후 프로그램이 충돌 함
개체가 필요한 경우 함수가 정적 인 이유를 설명 할 수 있습니까? – Ashot
Qt의 역사를 알지 못하지만 어디서나 QApplication에 액세스 할 수 있도록 정적 인 것으로 가정합니다. QApplication에는 생성자가 설정 한 정적 자체 변수가 있으므로 정적 함수가 응용 프로그램 인스턴스에 액세스 할 수 있습니다. 생성자 전에 호출 된 모든 정적 함수는 NULL 포인터를 가져옵니다. 최고의 디자인은 아니지만 그 당시에는 이유가 있다고 확신합니다. QApplication :: instance() -> setStyle() 또는 이와 비슷한 것을 호출해야한다면 더 명확해질 것입니다. –