QML TextInput fails to render UTF-8 bullet character - qt

I have a simple QML TextInput component having echoMode property set to TextInput.Password. I see that default passwordCharacter (it should be a medium bullet (U+25CF)) is not correctly rendered (see image).
This happens when application is built for a target running a Yocto Poky distro. If I build on my host, the bullet is shown correctly. I suppose this is a locale related problem but i can't figure out the reason and i don't know exactly how QML interacts with locale settings on the system. I'm able to print bullet character from a shell on target with command:
echo -e "\u25cf"
so i suppose that locale related settings are correct. Any ideas?

Related

Can I globally switch to native text rendering in Qt Quick Controls 2?

I would like to use native rendering for all the text in my application. For each Text, Label, etc. element I can do this
Text {
renderType: Text.NativeRendering
}
to trigger native rendering. I can also use the software renderer for the whole application:
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);
However due to some bugs with the software renderer and some performance issues, I would like to avoid that.
Is there a global switch to change the render type?
Since Qt 5.7, you can change the default Qt Quick text render type, but unfortunately only at build time. In order to change the default, you would have to rebuild libQt5Quick.so with QT_QUICK_DEFAULT_TEXT_RENDER_TYPE set to NativeRendering. For more details, see https://codereview.qt-project.org/#/c/121748/ .
If you have installed Qt using an installer from qt.io, install the source packages using the maintenance tool if you already haven't done so, navigate to qtdeclarative/src/quick, run qmake with the define, and build. Something along the lines:
cd path/to/Qt/Sources/5.8/qtdeclarative/src/quick
# NOTE: make sure to run qmake from the same/correct Qt installation
path/to/Qt/5.8/<spec>/qmake "DEFINES+=QT_QUICK_DEFAULT_TEXT_RENDER_TYPE=NativeRendering"
make -jN
If you have a self-built Qt installation, invoke make clean (or if you want to save time, just delete qquicktext*.o) before make to rebuild the library.
EDIT: Since Qt 5.10, it is also possible to specify the default text render type in C++ via QQuickWindow::setTextRenderType(). Just notice to set it before loading the QML content.
The environment variable QML_DISABLE_DISTANCEFIELD controls this.
If you put
qputenv("QML_DISABLE_DISTANCEFIELD", "1");
at the beginning of your main, you will get a nice and sharp text rendering everywhere.
Source: http://www.kdab.com/~thomas/stuff/distancefield.html
Add this line first in c++ main function : QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);

Ubunto12.04-Gnome3 -- Show icon in alt-tab menu using .desktop file

After Googling for hours, I didn't find any answer for the following issue and so glad if anyone could help.
I use Ubuntu 12.04 LTS with Gnome-shell 3.4.1. Consider the following simple program in file $HOME/a.py which I have made it executable:
#!/usr/bin/env python
import gtk
w = gtk.Window()
w.set_size_request(250, 150)
w.set_title("test program")
w.connect('destroy', lambda x: gtk.main_quit())
w.show_all()
gtk.main()
I've used MenuLibre to define a_run0.desktop in $HOME/.local/share/applications as below:
[Desktop Entry]
Version=1.0
Type=Application
Name=a_run
Comment=comm.
Icon=applications-development
Exec=/home/vsop/a.py
Path=
Terminal=false
StartupNotify=true
Categories=
Name[en_US]=a_run
Comment[en_US]=comm.
I made a_run0.desktop to be executable and I see a file named “a_run” in $HOME/.local/share/applications with proper icon (Icon=applications-development
). Running the program and using alt-tab, the icon is also shown in alt-tab menu quite well.
The question is, when I copy “a_run” file (actually a_run0.desktop) to $HOME/Desktop, the file is shown with correct icon in Desktop but after running it, the icon shown in alt-tab menu is changed to unknown-red-circle-icon with the name of original file “A.py” underneath.
What is made this problem and how can I see the defined-icon (in .desktop file) correctly in the alt-tab menu after running the program from $HOME/Desktop?
Try to add icon to your window using python and gtk. I think that icon in .desktop file only specify how .desktop file is shown in system not application.
Certainly in more recent versions of Gnome shell (I'm using 3.14.1) the entry Icon should point to the actual icon you want to use, e.g
Icon=/home/vsop/a_icon.xpm

How to change an initial size of qtcreator's qtcreator_process_stub window (on Ubuntu)?

I have an application being developed in QT Creator on Ubuntu. I need to run some tests and to see their results I use console — qtcreator_process_stub window is opened. And now comes my question: how to set its initial size? (especially the width to make results more readable). Setting the width by mouse each time I run my app is quite annoying.
I found a simple solution:
Go to Tools->Options->General->Environment: System->Terminal. There is a command used to invoke a terminal. In my case I needed to change the command to:
xterm -geometry 250 -e
That's all;)
Maybe it will be useful for Windows users:
You can right click on the console title bar (when running your program), select properties and change the font size (or other properties) in the font tab. It will be remembered for the future sessions.
For changing console size from command starts console use cmd.exe "/k mode con: cols=150 lines=50" (not working from Qt for me, changing COMSPEC do nothing).
In more recent versions of Qt Creator (2.6.2 and up) this can be changed in
Projects
Run (from the top of the window)
In the run environment edit the COMSPEC field
On Linux Mint you can do the following:
Open Terminal
Edit -> Profile Preferences -> General -> Use custom default terminal size
Set the Default size to a value which fit your needs.

Custom desktop icon with inno setup

I have the following in my inno setup file which creates a desktop icon no problem:
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
However, the main file that launches the program is a VBS file rather than an EXE. I'd like to have a nice icon on the shortcut rather than the VBScript one, but can't find an option to change the icon.
Is there such an option available to set a custom icon??
The Inno-Setup help about the [Icons] section says:
IconFilename
The filename of a custom icon (located on the user's
system) to be displayed. This can be an executable image (.exe, .dll)
containing icons or a .ico file. If this parameter is not specified or
is blank, Windows will use the file's default icon. This parameter can
include constants.
Example: IconFilename: "{app}\myicon.ico"
(source)
Hope that helps.
You pasted the [Task] entry whereas the [Icons] entry is what creates the actual icon.
For that, you want to install a custom icon file, and set the IconFilename (and optionally IconIndex) parameter.
Before you use Inno setup, change the .exe icon with windows platform. After you change it then use Inno, and your .exe file becomes the icon that you have changed before using Inno.
In other words: Inno setup uses default icon to launch as a .exe icon, so you can change the icon before use Inno. It works for me.

WindowIcon not showing up despite being valid in resource (and used elsewhere)

In my last question (Qt/C++: Icons not showing up when program is run) I asked how to get an icon to show up on a toolbar and was told I needed a Qt Resource, which I added and that fixed my problem, the icon did show up on the toolbar.
Now I'm trying to set the title icon of a window, using the same resource file, and it shows up fine in the Qt preview viewer but blank in the actual program. I am using a MainWindow which has an MDIArea and the children are MainWindows as well; neither the parent MDI nor child MDI windows icons will show properly. On the parent, I see the regular "Windows Application icon" and on the child, the icon is completely blank.
How can I solve this?
You will have to go through a standard resource file for windows. (That is, a .rc)
The process (as described in the documentation) is:
Store the ICO file in your application's source code directory, for
example, with the name myappico.ico. Then, create a text file called,
say, myapp.rc in which you put a single line of text:
IDI_ICON1 ICON DISCARDABLE "myappico.ico"
Finally, assuming you are using qmake to generate your makefiles, add this line to your myapp.pro
file: RC_FILE = myapp.rc
Regenerate your makefile and your application. The .exe file will now be represented with your icon in Explorer.
In the Visual Studio case you're simply able to add a resource to your project.

Resources