Qt4 横向模式中断,显示不正确
大约一个月前,我开始为一个废弃的Qt应用程序开发。它几乎完成了,但我面临一个无法修复的bug。 当我模拟应用程序时,一切都很好,包括纵向和横向。但是,当我在运行诺基亚百丽刷新(Qt 4.8)的诺基亚E7-00上安装应用程序时,横向模式会中断。 有什么解决办法吗? 我发现有一个主题描述了类似的问题,但没有找到真正的解决方案 main.cpp中有关QmlApplicationViewer的代码:Qt4 横向模式中断,显示不正确,qt4,symbian,qml,nokia,Qt4,Symbian,Qml,Nokia,大约一个月前,我开始为一个废弃的Qt应用程序开发。它几乎完成了,但我面临一个无法修复的bug。 当我模拟应用程序时,一切都很好,包括纵向和横向。但是,当我在运行诺基亚百丽刷新(Qt 4.8)的诺基亚E7-00上安装应用程序时,横向模式会中断。 有什么解决办法吗? 我发现有一个主题描述了类似的问题,但没有找到真正的解决方案 main.cpp中有关QmlApplicationViewer的代码: QScopedPointer<QmlApplicationViewer> tQmlAppli
QScopedPointer<QmlApplicationViewer> tQmlApplicationViewer(QmlApplicationViewer::create());
tQmlApplicationViewer->setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Load the QML entrypoint
tQmlApplicationViewer->setMainQmlFile(QLatin1String("qml/BeTrains/main.qml"));
tQmlApplicationViewer->showFullScreen();
QScopedPointer tQmlApplicationViewer(QmlApplicationViewer::create());
tQmlApplicationViewer->setResizeMode(QDeclarativeView::SizerootObject视图);
//加载QML入口点
tQmlApplicationViewer->setMainQmlFile(QLatin1String(“qml/BeTrains/main.qml”);
tQmlApplicationViewer->showFullScreen();
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
}
}
导入QtQuick 1.1
导入com.nokia.symbian 1.1
导入com.nokia.extras 1.1
导入“页面”
导入“组件”
将“js/utils.js”作为utils导入
将“js/storage.js”作为存储导入
导入QtQuick 1.0
窗口{
id:窗口
属性字符串\uuu schemaIdentification:“2”
Component.onCompleted:{
Storage.initialize()
}
//
//窗口结构
//
页面堆栈窗口{
id:pagestackwindow1
初始页:主页
showStatusBar:真
showToolBar:true
onRotationChanged:console.log(“rotated!”)
页面{
id:主页
//方向锁定:PageOrientation.LockPortrait
工具:工具栏布局
TabGroup{
id:tabGroup
currentTab:liveboardStack
锚定。填充:父级
页面堆栈{
id:liveboardStack
completed:liveboardStack.push(liveboardPage)
}
页面堆栈{
id:travelStack
Component.onCompleted:travelStack.push(travelPage)
}
}
}
}
//
//工具栏
//
工具栏布局{
id:工具栏布局
//背布顿
工具按钮{
属性bool closeButton:tabGroup.currentTab.depth不确定原因是什么,但您的main.qml很奇怪…PageStackWindow已经是一个窗口,为什么要用另一个窗口将其包装?请尝试删除该窗口并将PageStackWindow用作main.qm中的顶层
(答案由@Dickson评论)不确定原因是什么,但您的main.qml很奇怪…PageStackWindow已经是一个窗口,为什么要用另一个窗口将其包装?请尝试删除该窗口并将PageStackWindow用作main中的顶层。qml@Dickson我试过了,只做了一些小的调整就把它修好了!谢谢你的帮助!我再也没有注意到这一点了,因为一直都是这样,因为当我继续应用程序时,原始开发人员需要这个组件。onCompleted。顺便说一句,这是固定的,但我不能将您的答案标记为已回答?@Bertware您不能接受答案,因为它不是答案,而是注释。Dickson应该复制粘贴它作为答案,当然您可以自己做,然后接受您自己的答案,将问题标记为已回答。