gpt4 book ai didi

c++ - 将 Window::set_title 与 gtkmm 一起使用时窗口标题截断

转载 作者:行者123 更新时间:2023-11-28 01:08:07 27 4
gpt4 key购买 nike

我正在尝试重命名我的应用程序主窗口的标题,但在尝试重命名时,名称被截断了。我试图查看这是否是转换问题,但我真的找不到为什么会这样。试试这个小程序。点击取消以在标题栏中查看默认的应用程序名称,但如果您选择一个文件,它应该将文件的第一行显示为标题,而不是将其截断...字符串末尾前始终为 3 个字符, 并添加三个点“...”。

我做错了什么??还是我的 gtkmm 版本有问题?我使用 gtkmm-2.4提前致谢。

#include <iostream>
#include <gtkmm.h>

using namespace std;
using namespace Gtk;
using namespace Glib;

class AppWindow : public Window {
public:
AppWindow();
protected:
void onMenuFileOpen();
private:
ustring app_name;
void OpenScript(const ustring sScriptFile);
};

AppWindow::AppWindow() {
app_name = "default app_name, very long name, with !!^spectal caractères à afficher, and there is no name truncation";
//set_title(app_name);
set_default_size(600, 600);

onMenuFileOpen();

}

void AppWindow::onMenuFileOpen() {
FileChooserDialog dialog("Choose a file", FILE_CHOOSER_ACTION_OPEN);
dialog.set_transient_for(*this);

//Add response buttons the the dialog:
dialog.add_button(Stock::CANCEL, RESPONSE_CANCEL);
dialog.add_button(Stock::OPEN, RESPONSE_OK);

//Plain text filter
FileFilter filter_text;
filter_text.set_name("plain text");
filter_text.add_mime_type("text/plain");
dialog.add_filter(filter_text);

//Show the dialog and wait for a user response:
if(dialog.run() == RESPONSE_OK) {
OpenScript(dialog.get_filename());
}
//HERE, I RENAME THE WINDOW
set_title(app_name);
cout << app_name << endl;
}

void AppWindow::OpenScript(const ustring sScriptFile) {
RefPtr<IOChannel> file = IOChannel::create_from_file(sScriptFile,"r");
IOStatus status;
ustring one_line;

if(file->get_flags() & IO_FLAG_IS_READABLE) {
status = file->read_line(one_line);
app_name=one_line;
}
file->close();
}

int main(int argc, char *argv[]) {
Main kit(argc, argv);

AppWindow window;
//Shows the window and returns when it is closed.
Main::run(window);

return 0;
}

最佳答案

在这里工作正常。

  • 也许您的文件不是 UTF-8 编码?
  • 如果标题超过标题栏的空间,标题被截断是正常的吗?

关于c++ - 将 Window::set_title 与 gtkmm 一起使用时窗口标题截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com