- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 QDialog
,它是用 QDesigner
大量设计的,我在网上看到我可以添加 QStatusBar
,代码如下:
#include <QDialog>
#include <QStatusBar>
#include <QLayout>
#include <QApplication>
#include <QTextEdit>
#include <QStatusTipEvent>
class Dialog : public QDialog {
public:
Dialog() : QDialog(){
QLayout *l = new QVBoxLayout(this);
QTextEdit *te = new QTextEdit;
te->setStatusTip("XXX");
l->addWidget(te);
bar = new QStatusBar;
l->addWidget(bar);
l->setMargin(0);
l->setSpacing(0);
}
private:
QStatusBar *bar;
protected:
bool event(QEvent *e){
if(e->type()==QEvent::StatusTip){
QStatusTipEvent *ev = (QStatusTipEvent*)e;
bar->showMessage(ev->tip());
return true;
}
return QDialog::event(e);
}
};
int main(int argc, char **argv){
QApplication app(argc, argv);
Dialog dlg;
return dlg.exec();
}
在我的情况下它甚至不起作用..也许 QDialog
已经有很少的布局来保存小部件。
我的问题是我可以知道如何在 QDesigner
中使用 palceholder 或以某种方式提升放置 QStatusbar
类的小部件吗?我不知道……
遇到这种情况怎么办?我可以实现新的 QStatusbar
吗?
谢谢
最佳答案
我假设当您说它不起作用时,您在运行时没有看到状态栏。
我看不出有任何方法可以在设计器中完全做到这一点。设计者当然反对将某些东西提升到 QStatusBar
的想法。我想您可以通过子类化 QStatusBar
,然后将 QWidget
提升到您的子类来愚弄设计人员。
但我认为我们现在还不需要走那条路。我认为对上面的代码进行一些调整应该会有所帮助。
在设计器中,在对话框底部添加一个布局,不管是哪种布局。我称我的“StatusBarLayout”。您可以看到布局(底部被压扁的红色框)。我删除了对话框中的底部边距,以便状态栏在底部齐平。
现在删除上面代码中关于布局 l 的所有内容,然后这样做:
bar = new QStatusBar(this);
pUI->StatusBarLayout->addWidget(bar);
pUI->textEdit->setStatusTip("XXX");
textEdit
是在设计器中添加的东西。现在,当您运行它时,您应该会看到:
希望对你有帮助
编辑:
您还可以在设计器中为各种小部件设置状态提示,因此除非您愿意,否则无需在代码中执行此操作。
关于c++ - Qt : how to implement QDialog StatusBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6135514/
尽管安装了状态栏插件,但我无法将 ionic/cordova iOS 应用程序中状态栏上的字体颜色更改为白色: cordova plugins ... org.apache.cordova.statu
我已经针对 KitKat 创建了一个单独的 xml 样式文件,并且我已经设法更改了状态栏的颜色。图片上唯一的副作用是,所有内容现在都向上移动到状态栏下方。我的问题是如何在不覆盖状态栏的情况下更改状态栏
在我的活动召唤的那一刻。在其onCreate方法内部,以隐藏状态栏并以全屏模式显示。。作为向Android 30迁移的一部分,正如文档所建议的那样,我用WindowInsetsController#H
我刚刚使用下一个命令创建了一个新应用: ionic start myapp 一切正常,但是当我尝试部署到 Android 时(我的 Android studio 环境已正确安装和配置),我收到下一个错
我想查看在 PyCharm 或任何其他 JetBrains IDE 中使用 IdeaVIM 时当前处于哪种 Vim 模式。 碰巧我用鼠标选择了单个字符(例如意外双击单个字母),然后光标无法正确区分正常
我正在构建一个应用程序,它需要有一个状态栏项目和一个自定义弹出窗口,单击状态栏项目时会弹出该窗口。 我知道如何为其设置状态栏项目和 ns 菜单,但我需要自定义窗口而不是 ns 菜单。 我正在寻找的一个
我们有一个 WPF 可执行文件,它创建一个程序集,然后动态加载多个程序集。每个程序集代表一个显示在选项卡之一中的屏幕 (.xaml)。问题是它位于窗口的正下方而不是底部。我如何强制 始终位于底部 wi
我有一个带有菜单栏和状态栏的 MDIForm。当我创建一个子窗体并将其定位为“Align = alBottom”时,该窗体会离开屏幕区域,并且主窗体滚动条被激活。如何将子窗体定位在状态栏上方? 最佳答
首次创建 StatusBar 时,例如: HWND hStatusBar = CreateWindowEx(0, STATUSCLASSNAME, "", WS_CHILD | WS_VISIBLE,
我想实现一个状态栏,我将能够在指定的时间段内显示消息,之后它们将淡出。 这可以用 wpf 中任何现成的控件来完成吗?我在 StatusBar 中找不到这样的功能,据我所知,它是其他项目的容器。 有什么
我的第一个 ViewController 是纵向的,第二个 ViewController 是横向的。第一个 ViewController 有状态栏,第二个没有。 然后我显示第一个 ViewContro
我使用以下代码更改我的 ViewController 中的 StatusBar 颜色: override func viewWillAppear(_ animated: Bool) { sup
我无法创建两个以上的 StatusBar 部分: HWND hStatusBar = CreateWindowEx(0, STATUSCLASSNAME, "", WS_CHILD | WS_VISI
StatusBar 中每个 TextBlock 之间的分隔条似乎具有不相等的宽度。有些条看起来比其他条更细。左数第一和第四个条比第二个和第三个粗。如果有人可以为等宽分隔符提供任何解决方案,我将不胜感激
我的 Activity 使用 CollapsingToolbarLayout 并且我成功删除了 StatusBar 这样做: View decorView = getWindow().getDecor
我正在从 UINavigationController 中的 VC1 推送到 VC2。 VC2有一个透明的navigationBar。 在 VC2 中的 viewDidLoad 中: self.nav
我想创建一个可用于显示和隐藏状态栏的全局函数。这是我所做的: class Helper { class func hide() { let app = UIApplicat
我有一个管理其中所有其他 Controller 的 Root View Controller ,所以我覆盖了 rootViewController 中的 shouldAutorotate 和 supp
我正在为我的状态栏图像使用以下代码: let icon = NSImage(imageLiteralResourceName:"flag") statusBarItem.image = icon 这会
fileprivate lazy var netTipWindow:UIWindow = { let window = UIWindow(frame: CGRect(x: 0, y:
我是一名优秀的程序员,十分优秀!