GVKun编程网logo

在Windows下,Qt应用程序的外观和感觉是什么?(qt应用程序在哪个文件夹)

11

在这篇文章中,我们将带领您了解在Windows下,Qt应用程序的外观和感觉是什么?的全貌,包括qt应用程序在哪个文件夹的相关情况。同时,我们还将为您介绍有关.net–在Windows服务和应用程序之间

在这篇文章中,我们将带领您了解在Windows下,Qt应用程序的外观和感觉是什么?的全貌,包括qt应用程序在哪个文件夹的相关情况。同时,我们还将为您介绍有关.net – 在Windows服务和应用程序之间共享内存,最简单的方法是什么?、.net – 用于Windows应用程序的数据库是什么?、HTML – Web应用程序的廉价/免费“外观和感觉”框架、JComboBox单元格渲染器失败,Windows外观和感觉的知识,以帮助您更好地理解这个主题。

本文目录一览:

在Windows下,Qt应用程序的外观和感觉是什么?(qt应用程序在哪个文件夹)

在Windows下,Qt应用程序的外观和感觉是什么?(qt应用程序在哪个文件夹)

我即将将我的一个Mac应用程序移植到Windows。 Mac应用程序使用Apple的本机Cocoa / Appkit框架进行UI。 UI是Obj-C代码,核心应用程序功能是便携式C代码。

现在我正在寻找一种将应用程序移植到Windows的方法,并使其外观和Windows感兴趣的用户。我的选择是微软的MFC和Qt框架。虽然我确信MFC应用程序具有原生的外观和感觉,但我记得从MFC编码框架本身是可怕的。我从开发者的角度看Qt,并喜欢它。

但是,由于我不是Windows用户,我不知道Qt应用程序是否具有Windows原生Windows的外观。

因此我的问题:我可以做(没有很多工作)一个Qt应用程序的行为,看起来像是用本机Windows框架编写的?

您可以轻松地更改Qt应用程序的风格。在Windows和Mac上,默认样式实际上是使用本机函数绘制窗口,控件等。

另外,Qt确实采取了许多措施,即使应用程序的最小方面(您甚至不会想到的事情)也会模拟特定平台的本机行为。所以您的Qt应用程序也可以在移植时替换当前的Mac应用程序。

我非常建议你不要使用MFC,你会后悔(特别是如果你没有使用本机的Win32 API)。 Qt与Qt完全相反,就是灵活性和易用性。

.net – 在Windows服务和应用程序之间共享内存,最简单的方法是什么?

.net – 在Windows服务和应用程序之间共享内存,最简单的方法是什么?

我需要我的服务来更新共享内存中的字段,以便客户端应用程序读取和显示.由于 Session 0 Isolation,我发现我目前的解决方案无效.

我已经在Global命名空间中重命名了互斥锁,它修复了该元素,但它看起来并不像dll可以在会话之间共享,尽管Session 0 Isolation的一个解决方案是:

“Explicitly choose either the Local\ or Global\ namespace for any named objects,such as
events or mapped memory that the service makes available.”

我不知道dll的哪个部分可以归类为命名对象,并且需要花费很长时间才能继续重新安装并逐步检查它.

我看到了命名频道的代码卷,并被推迟了.我不想创建一个触及磁盘的文件,因为我想象的是memoryMappedFile解决方案. dll的共享部分可以工作吗?否则最简单的是什么?

public ref class ServerGUIBridge
{
public:
#pragma data_seg(".sdata")
    static int commonIntShouldBeGlobal = 0;
    static bool hasBeenInitializedMakeMeGlobal = false;
#pragma data_seg()
#pragma comment(linker,"/section:.sdata,rws")

我正在使用.NET 2.0,所以请不要使用WCF.

解决方法

我建议命名管道:然后你在两个进程之间有适当的控制隔离.共享DLL听起来像充满了危险.

MSDN上记录了命名管道:http://msdn.microsoft.com/en-us/library/aa365590.aspx

一篇有用的.NET 2.0文章在这里:http://www.switchonthecode.com/tutorials/interprocess-communication-using-named-pipes-in-csharp

(请记住,.NET 3.5及更高版本有一个NetNamedPipeBinding类[http://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding.aspx],它是WCF的一部分)

.net – 用于Windows应用程序的数据库是什么?

.net – 用于Windows应用程序的数据库是什么?

我正在开发.net中的小型 Windows应用程序.我应该使用什么数据库?

数据库结构

表1:不超过3个字段:50个记录(添加,删除)

表2:不超过10个字段:10-20个记录(添加,删除)

我想过使用XMLDatabase但有些人说不建议使用它.这是什么原因?
如果可以将XML文件用作数据库,那么您可以建议一些教程或最佳实践吗?我之前使用过XML文件.使用它作为数据库有什么不同吗?

我也计划在一段时间后将这个应用程序分发给我的朋友,这些人不是程序员,他们不太懂技术.

那么,如果我使用sql Server,我该如何在其他机器中部署它?如何将其添加到安装文件中?

更新:感谢您的回答.我想去sqlite,如果有人有兴趣,这里有关于sqlite和.net的tutorial.

解决方法

sqlite是一种很好的小型应用程序.它速度快,能力强,占地面积小.

对于.Net,我在之前的项目中使用了一个很棒的托管sqlite库:

http://sqlite.phxsoftware.com/

编辑:

鉴于sqlite和sql Server Compact版本之间的选择,除非您需要sqlite不支持的一些高级功能,否则您几乎总是希望使用sqlite.

[我更正了sql Server Compact Edition的安装大小.我最后一次调查它,它更不利.现在可能一样好.]

HTML – Web应用程序的廉价/免费“外观和感觉”框架

HTML – Web应用程序的廉价/免费“外观和感觉”框架

通常我很幸运能与真正优秀的设计师合作.它们可以处理我构建的所有Web应用程序/站点的外观.

在过去,当我为我感兴趣的项目为人们做廉价或免费的工作时,我使用了templatemonster或类似的模板.

我想参与相当大的内部应用程序来支持朋友业务,通常的宣传册模板可用不适合,因为这个应用程序都是关于数据访问的.

显然,可用性是最重要的,我没有技能来产生一个很好的可用界面,我们也没有钱支付定制工作.是否有任何项目可以提供更多为大型表格,数据网格,图表等设计的可用网页模板.我不需要图形化前沿的东西,我只需要一致,可用,易于应用的模板.

我看过Ext.js有主题组件,但是,即使有一堆漂亮的房子砖,我也不能设计一个漂亮的房子:)

谢谢

安德鲁

解决方法

Open Source Web Design是一个合理的检查地点.

如果您使用的是Rails,那么Baseapp值得关注,如果您喜欢37 Signals外观.

您还可以尝试SproutCore或Cappuccino JS框架.

不过,你将很难找到开箱即用的“可用性”.知道在哪里以及如何放置各种元素以形成一个有凝聚力的整体是一种技能,而不是模板形式的东西.正如你所说,你可以拥有一堆漂亮的砖块,但你仍然需要一个好的砖层才能使用它们.但是,上述链接可能有所帮助.

JComboBox单元格渲染器失败,Windows外观和感觉

JComboBox单元格渲染器失败,Windows外观和感觉

我正在编写一个使用本地系统外观的Java应用程序。 在程序中有一个ListCellRenderer呈现一个彩色圆点(一个自定义JComponment),后面跟着一些给定对象的文本。 当使用Swing的默认Metal外观时,这可以正常工作。

但是,当我使用Windows外观时,单元格在下拉列表中正确显示,但所选项目(用户未select不同选项时显示的项目)仅呈现文本并忽略彩色点。 如果我更改渲染器来设置字体,则会在下拉列表和选定的项目中都观察到适当的字体,所以我知道至less部分使用了单元渲染器。

我已经阅读了一些networking上关于不同的LAF导致这样的问题的post,但没有遇到任何讨论我的特定问题的人。

如果有人在这里是好奇的代码:

ant:warning:编码UTF8的不可映射字符

java.lang.classFormatError

Java如何从string中删除回车(HEX 0A)?

Aptana在Ubuntu的Linux上崩溃

如何在Java中获得UNIX正常运行时间?

@Override public Component getListCellRendererComponent(JList<? extends Coloreddisplayable> jlist,Coloreddisplayable e,int i,boolean isSelected,boolean hasFocus) { JPanel cell = new JPanel(new GridBagLayout()); cell.setopaque(false); JLabel label = new JLabel(e.getdisplayString()); label.setopaque(false); label.setBorder(BorderFactory.createEmptyBorder(1,4,1,4)); label.setHorizontalAlignment(JLabel.LEFT); Color deselectedBackground = cell.getBackground(); Color deselectedTextColor = cell.getForeground(); // LAYOUT COMPONENTS // Dot GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = INSETS; gbc.anchor = GridBagConstraints.LINE_START; gbc.weightx = 0.0f; gbc.fill = GridBagConstraints.NONE; cell.add(new Dot(e.getColor()),gbc); // Label gbc.gridx = 1; gbc.weightx = 1.0f; gbc.fill = GridBagConstraints.HORIZONTAL; cell.add(label,gbc); if (isSelected){ cell.setopaque(true); cell.setBackground(MetalLookAndFeel.getTextHighlightColor()); } else { cell.setBackground(deselectedBackground); cell.setForeground(deselectedTextColor); } return cell; }

另外,这里是自定义组件的代码,任何人都想试试看看我是否在这里做一些愚蠢的事情:

public class Dot extends JComponent { /** The size of the dot. */ private static final int SIZE = 10; /** The size of the dot. */ private static final int PAD = 4; private static final Dimension DIM = new Dimension(SIZE + PAD,SIZE + PAD); /** The Color to render the dot. */ private final Color m_color; /** The Dot itself. */ private static final Ellipse2D.Double DOT = new Ellipse2D.Double(PAD / 2,PAD / 2,SIZE,SIZE); /** * Creates a dot of the specified color. * @param color the color to make the dot. */ public Dot(Color color) { m_color = color; } @Override public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D)g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); g2d.setColor(m_color); g2d.fill(DOT); } @Override public Dimension getPreferredSize() { return DIM; } }

编辑:我只testing了这个在Ubuntu 12.04和单元格渲染器在那里按预期工作(虽然JComboBox没有渲染其外部边框,因为它没有应用自定义渲染器)。

编辑:当我越来越多地看,这似乎有可能是JComboBox上的setEditor方法的东西,但是当不可编辑时,渲染器应该被用作方法状态的javadoc:

设置用于在JComboBox字段中绘制和编辑所选项目的编辑器。 编辑器仅在接收JComboBox可编辑的情况下使用。 如果不可编辑,则comboBox使用渲染器绘制选定的项目。

这似乎并不是我所看到的行为。 为了让我的单元格渲染器的所有部分都能被W​​indows LAF的用户观察到,我必须做些什么?

SOS – 柏林调度程序不能继续下一个工作

Windows批处理和Java:结合-XX:OnOutOfMemoryError命令和批处理参数

如何在Windows上创build,然后primefaces重命名文件在Java?

如何在Linux中设置CLAsspATH让javafindjar文件?

哈德森未能使用unix用户/组进行身份validation

挖掘到这一点,我发现,对于Windows LAF,我需要设置一个ComboBoxEditor并将JComboBox设置为可编辑,以便所选单元格正确呈现。

这在我看来是一个特定于Windows外观的错误/非预期的函数,因为JComboBox的setEditor方法的API规定,当不可编辑时,将使用渲染器 – 在默认Metal LAF和Ubuntu 。

除此之外,每当getEditorComponent被调用时,我都无法让Editor返回一个新的单元格,就像ListCellRenderer中的那样。 我想这是有道理的。

本网站提供了一个如何创建编辑器的例子(虽然有点乏味)

http://www.codejava.net/java-se/swing/create-custom-gui-for-jcomboBox

JComboBox和BasicComboBox的API也很有帮助:

http://docs.oracle.com/javase/7/docs/api/javax/swing/JComboBox.html#setEditor(javax.swing.ComboBoxEditor&#xFF09;

http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/basic/BasicComboBoxEditor.html

最后,我的编辑代码:

public class ColoreddisplayableComboBoxEditor extends BasicComboBoxEditor { private Coloreddisplayable m_cd = null; private static final Insets INSETS = new Insets(3,3,1); private final JPanel m_cell; private final JLabel m_label; private final Dot m_dot; public ColoreddisplayableComboBoxEditor() { // INITIALIZE // Panel m_cell = new JPanel(new GridBagLayout()); m_cell.setopaque(false); // Label m_label = new JLabel(); m_label.setopaque(false); m_label.setBorder(BorderFactory.createEmptyBorder(0,4)); m_label.setHorizontalAlignment(JLabel.LEFT); // Dot m_dot = new Dot(Color.BLACK); // LAYOUT // Dot GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = INSETS; gbc.anchor = GridBagConstraints.LINE_START; gbc.weightx = 0.0f; gbc.fill = GridBagConstraints.NONE; m_cell.add(m_dot,gbc); // Label gbc.gridx = 1; gbc.weightx = 1.0f; gbc.fill = GridBagConstraints.HORIZONTAL; m_cell.add(m_label,gbc); } @Override public Component getEditorComponent() { return m_cell; } @Override public Object getItem() { System.out.println("getting item."); return m_cd; } @Override public void setItem(Object item) { System.out.println("setting item."); if (item instanceof Coloreddisplayable) { Coloreddisplayable cd = (Coloreddisplayable)item; if (!cd.equals(m_cd)) { System.out.println("--item actually set."); m_cd = cd; m_label.setText(m_cd.getdisplayString()); m_dot.setColor(m_cd.getColor()); } } else { throw new IllegalArgumentException("Parameter item must be a Coloreddisplayable."); } } }

关于在Windows下,Qt应用程序的外观和感觉是什么?qt应用程序在哪个文件夹的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.net – 在Windows服务和应用程序之间共享内存,最简单的方法是什么?、.net – 用于Windows应用程序的数据库是什么?、HTML – Web应用程序的廉价/免费“外观和感觉”框架、JComboBox单元格渲染器失败,Windows外观和感觉等相关内容,可以在本站寻找。

本文标签: