小编Mic*_*ael的帖子

如何为Linux的Qt应用程序进行二进制分发

我正在开发跨平台的Qt应用程序.虽然不是开源的,但它是免费软件.因此,我想将其作为编译二进制文件分发.

在Windows上没有问题,我将我的编译exe与MinGW和Qt的DLL一起打包,一切都很顺利.

但是在Linux上存在一个问题,因为用户可能在他/她的系统中拥有与我的完全不同的共享库.

Qt部署指南提出了两种方法:静态链接和使用共享库.第一个产生巨大的可执行文件,并且还需要Qt所依赖的许多库的静态版本,即我必须从划痕重建所有这些库.第二种方法是基于在应用程序启动之前重新配置动态链接器,对我来说似乎有点棘手.

任何人都可以分享他/她在Linux下分发Qt应用程序的经验吗?我应该使用什么方法?我可能遇到什么问题?有没有其他方法来完成这项工作?

linux deployment qt distribution

16
推荐指数
2
解决办法
1万
查看次数

如何在MacOS运行时更改Qt应用程序的停靠图标?

我需要根据某些条件在运行时更改我的Qt应用程序的停靠图标(在MacOS X中).

我在trolltech.com上找到了几个食谱:

  1. QApplication::setIcon()
  2. setApplicationIcon()
  3. qt_mac_set_app_icon()

但它都不起作用:Qt 4.5中没有这样的方法/功能.

如何更改应用程序的停靠栏图标以及可以使用的图标格式?

谢谢.

c++ macos qt dock

5
推荐指数
1
解决办法
3627
查看次数

如何检查Qt GUI应用程序是否已在运行(在Linux中)?

我需要检查我的Qt GUI应用程序是否已在当前的X会话中运行.也就是说,我想禁止运行它的几个实例.但是应该允许不同用户或另一个(即远程)X服务器上的同一用户运行多个实例.

如何才能做到这一点?

谢谢.

linux qt

2
推荐指数
1
解决办法
2661
查看次数

是否有任何函数对象在STL中创建对象?

考虑以下课程:

class Person {
public:
    // I don't want any "char *" to be converted to Person implicitly!
    explicit Person( const char * name ) : name_(name) {};

private:
    std::string name_;
};
Run Code Online (Sandbox Code Playgroud)

还要考虑以下char*数据数组:

char STUDENT_NAMES[][20] = {
    "Bart",
    "Liza",
    "Maggie"
};
Run Code Online (Sandbox Code Playgroud)

现在,我想根据这个数组创建std :: Person of Person.我所能发明的是使用std :: transform算法和手写函数对象:

struct CreatePerson : public std::unary_function<const char*,Person> {
    Person operator() (const char * name) const {
        return Person(name);
    };
};

// ...

std::list<Person> students;
std::transform(
    &STUDENT_NAMES[ 0 ],
    &(STUDENT_NAMES[ sizeof(STUDENT_NAMES)/sizeof(STUDENT_NAMES[0]) ]),
    front_inserter(students),
    CreatePerson() …
Run Code Online (Sandbox Code Playgroud)

c++ functional-programming stl

2
推荐指数
1
解决办法
299
查看次数

标签 统计

qt ×3

c++ ×2

linux ×2

deployment ×1

distribution ×1

dock ×1

functional-programming ×1

macos ×1

stl ×1