약 한 달 전에 버려진 Qt 앱 개발을 시작했습니다. 거의 완료되었지만 해결할 수없는 버그가 하나 있습니다. 앱을 시뮬레이션 할 때 두 가지 모두 세로로 잘립니다. 그러나 노키아 벨 리프레시 (Qt 4.8)를 실행하는 Nokia E7-00에 앱을 설치하면 가로 모드가 중단됩니다. 이 문제가 해결 되었습니까? 유사한 문제를 설명했지만 실제 솔루션을 찾지 못한 항목이 하나 있습니다. MAIN.CPP에 QmlApplicationViewer에 관한가로 모드가 잘못되었거나 잘못 표시되었습니다.
코드 : main.qml
import QtQuick 1.1
import com.nokia.symbian 1.1
import com.nokia.extras 1.1
import "pages"
import "components"
import "js/utils.js" as Utils
import "js/storage.js" as Storage
import QtQuick 1.0
Window{
id: window
property string __schemaIdentification: "2"
Component.onCompleted: {
Storage.initialize()
}
//
// Window structure
//
PageStackWindow {
id: pagestackwindow1
initialPage: mainPage
showStatusBar: true
showToolBar: true
onRotationChanged: console.log("rotated!")
Page {
id: mainPage
// orientationLock: PageOrientation.LockPortrait
tools: toolBarLayout
TabGroup {
id: tabGroup
currentTab: liveboardStack
anchors.fill: parent
PageStack {
id: liveboardStack
Component.onCompleted: liveboardStack.push(liveboardPage)
}
PageStack {
id: travelStack
Component.onCompleted: travelStack.push(travelPage)
}
}
}
}
//
// Toolbar
//
ToolBarLayout {
id: toolBarLayout
// Back buton
ToolButton {
property bool closeButton: tabGroup.currentTab.depth <= 1
flat: true
iconSource: closeButton ? "icons/close.svg" : "toolbar-back"
onClicked: closeButton ? Qt.quit() : tabGroup.currentTab.pop();
}
// Tab bar
ButtonRow {
TabButton { id: tabBtnLiveboard; tab: liveboardStack; iconSource: "toolbar-list" }
TabButton {id:tabBtnTravel;tab: travelStack; iconSource: "toolbar-search" }
}
// Menu
ToolButton {
iconSource: "toolbar-menu"
onClicked: {
if (!window.menu)
window.menu = Utils.loadObjectByComponent(menuComponent, window)
window.menu.open()
}
}
}
//
// Objects
//
// Statically loaded objects
property variant liveboardPage: LiveboardPage {}
property variant travelPage: TravelPage {}
// Dynamically loaded objects
property variant aboutDialog
// In-line defined menu component
property variant menu
Component {
id: menuComponent
Menu {
id: menu
content: MenuLayout {
// About
MenuItem {
text: qsTr("About")
onClicked: {
if (!aboutDialog)
aboutDialog = Utils.loadObjectByPath("components/AboutDialog.qml", menu)
aboutDialog.open()
}
}
// Quit
MenuItem {
text: qsTr("Quit")
onClicked: Qt.quit()
}
}
}
}
Text {
id: statustext
x: 2
y: 2
width: 230
height: 22
color: "#ffffff"
text: qsTr("BeTrains")
font.pixelSize: 20
}
}
에서
QScopedPointer<QmlApplicationViewer> tQmlApplicationViewer(QmlApplicationViewer::create());
tQmlApplicationViewer->setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Load the QML entrypoint
tQmlApplicationViewer->setMainQmlFile(QLatin1String("qml/BeTrains/main.qml"));
tQmlApplicationViewer->showFullScreen();
코드 마지막 텍스트 객체는 테스트 목적으로, 그리고 그것을 정상적으로 회전 .. . 문제를 보여주는 이미지 :
(이미지를 포함 할 수 없으므로 여기에 링크가 있습니다 : http://i.stack.imgur.com/LXsxe.jpg)
시뮬레이터 결과는 오른쪽에있는 내 E7의 스크린 샷입니다. 문제는 빨간색 원으로 둘러 쌉니다.
원인입니다하지만 main.qml 이상한 무엇인지 확실하지 ... PageStackWindow 이미입니다 (같은 @Dickson 댓글을 달았 답변) 창, 왜 다른 창으로 감싼거야? Window를 지우고 PageStackWindow를 main.qml의 최상위 레벨로 사용하려고 시도하십시오. – Dickson
@Dickson 제가 시도 했었습니다. 그리고 약간의 조정으로 그런 식으로 고쳐주었습니다! 당신의 도움을 주셔서 감사합니다! 더 이상이 사실을 더 이상 알지 못했습니다. 왜냐하면 항상 앱을 계속 사용하고 원래 개발자가이 요소를 필요로했기 때문입니다. 완료되었습니다. btw,이 문제는 해결되었지만 답변을 답변으로 표시 할 수는 없습니까? – Bertware
@Bertware 대답이 아니라 주석이기 때문에 대답을 수락 할 수 없습니다. Dickson이 대답으로 복사하여 붙여 넣기해야합니다. 답을 직접 쓰고 대답을 수락하면 답이 표시된 질문이 표시됩니다. – hyde