Sponsored Content
Full Discussion: read position mouse cursor
Special Forums UNIX and Linux Applications read position mouse cursor Post 302254556 by daggilli on Tuesday 4th of November 2008 05:27:59 PM
Old 11-04-2008
Java

This is the complete code for a Qt application I threw together in about ten minutes (called crosshair) which displays the current mouse coordinates in a window. You might be able to pull enough out of it to be useful. This is Qt 3.1, but Qt 4 is not a great deal different. You will need the Qt development libraries, not just the runtimes. The code comprises two files, crosshair.h and crosshair.cpp.


crosshair.h:

Code:
#ifndef CROSSHAIR_H
#define CROSSHAIR_H
#include <qwidget.h>
#include <qstring.h>
#include <qlabel.h>
#include <qevent.h>

class Crosshair : public QLabel
{
Q_OBJECT

public:
    Crosshair(QWidget *parent=0);

protected:
    void mousePressEvent(QMouseEvent *);

private:
    QTimer         *timer;

private slots:
    void timerfire();
};

#endif

crosshair.cpp:

Code:
#include <qapplication.h>
#include <qpushbutton.h>
#include <qtimer.h>
#include <qcursor.h>
#include <iostream>
#include "crosshair.h"

using namespace std;

int main(int argc,char **argv)
{
    QApplication a(argc,argv);

    Crosshair mousepos;

    a.setMainWidget(&mousepos);
    mousepos.show();
    return a.exec();
}

Crosshair::Crosshair(QWidget *parent) : QLabel(parent)
{
    setIndent(20);
    resize(100,30);
    move(1200,200);
    setText("0,0");
    timer=new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(timerfire()));
    timer->start(50,false);
}

void Crosshair::mousePressEvent(QMouseEvent *)
{
    qApp->quit();
}

void Crosshair::timerfire()
{
    QPoint p=QCursor::pos();
    this->setText(QString().sprintf("%d,%d",p.x(),p.y()));
}

To build this, put both files in a directory called crosshair. cd to that directory and type
Code:
qmake -project
qmake
make

This does nothing more complex than inherit from a QLabel, set a timer to run 20x a second, grab the current cursor coordinates and write them into the label's text. Clicking in the window closes it. I use it for fixing up alignment bugs in JavaScript when I'm laying out objects.

You could open a file in the Crosshair class's constructor to store your data, and use gettimeofday(2) to get a timestamp. Nothing says Qt has to run in GUI mode (you can tell it explicitly not to in the QApplication constructor).

Qt from Trolltech: http://doc.trolltech.com
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Get the cursor position

Hello, Is there a way to get the current cursor position? I know "tput sc" saves it. Is there a way to find out the value saved? Thanks. (0 Replies)
Discussion started by: bestbuyernc
0 Replies

2. Programming

Cursor Global Position

Hello all, How can i get the global position of the cursor? (i'm using c language, and suse 10.1 linux) Thanks. (3 Replies)
Discussion started by: boogy
3 Replies

3. HP-UX

Command to know the terminal cursor position

Dear all, How can i get the current cursor position..is thr any command to find the same? Thanks in Advance Aneesh (3 Replies)
Discussion started by: aneesha
3 Replies

4. Programming

get terminal width and cursor position

I want to get the screen width and cursor positions. When I used curses, all the screen content was cleared. So Can I use curses to get the screen size without clearing anything in the window? Or is there any other alternative??? I can use only C or C++. (0 Replies)
Discussion started by: Sreejesh.S
0 Replies

5. UNIX for Dummies Questions & Answers

Vi editor : Knowing the current cursor position

Hi All, In VI editor, to know the line number at any instant we use ctrl+g Similarly, to know the current coulmn number what shall we use?? If not direct key controls like ctrl+g, Is there any comands that could be executed in colon or ex mode of VI to know the current column position???... (1 Reply)
Discussion started by: ramkrix
1 Replies

6. UNIX for Dummies Questions & Answers

Cursor position

Is there a way of finding the current cursor position (line & column) within AIX (4 Replies)
Discussion started by: gefa
4 Replies

7. Shell Programming and Scripting

ksh - moving cursor position

hi all, am trying to modify a ksh script to group server names together depending on the cluster they sit in. currently the script does a find . -name '*.pid' to find all running servers and prints out their pids and names. current output looks something like this : serverA ... (1 Reply)
Discussion started by: cesarNZ
1 Replies

8. Shell Programming and Scripting

Getting the cursor position

I need to get the cursor position, and put it inside a variable. Problem is, i don't have the tput command, or ncurses. Apparently I was supposed to try the following: echo -e '\E But I don't get a value or anything. Please help. (3 Replies)
Discussion started by: tinman47
3 Replies

9. Shell Programming and Scripting

Holding cursor position on one line

Hi there. It's easier to explain this with a pseudo code, I hope this makes sense: var1=hello echo $var1 some kind of loop echo loop counter done How do I hold the cursor position immediately behind the last output so I'd get something like: hello123456789 DOS used to use ","... (5 Replies)
Discussion started by: MuntyScrunt
5 Replies

10. Shell Programming and Scripting

Control cursor position also at bottom of window

I have a slight problem controlling the cursor position in a Bash terminal window. I have a function ask a question and then wait for an answer which is either 'y' or 'n' or a carriage return. Whenever the user enters anything else it just erases the answer and waits for the next one. However, the... (23 Replies)
Discussion started by: Ralph
23 Replies
crosshair(3tk)							    Crosshairs							    crosshair(3tk)

__________________________________________________________________________________________________________________________________________________

NAME
crosshair - Crosshairs for Tk canvas SYNOPSIS
package require Tcl ?8.4? package require Tk ?8.4? package require crosshair ?1.0.2? crosshair::crosshair w ?arg...? crosshair::off w crosshair::configure w ?arg...? crosshair::track on w cmdprefix crosshair::track off w _________________________________________________________________ DESCRIPTION
The crosshair package provides commands to (de)activate and track crosshairs on canvas widgets. API
The following commands are exported to the public: crosshair::crosshair w ?arg...? This command activates the display of a pair of cross-hairs for the canvas widget w. The cross-hairs track the pointing device. The result of the command is the empty string. All arguments after the widget w are treated as options as for a canvas line item in w. Of particular interest are -fill and -dash. crosshair::off w This command removes the cross-hairs from the canvas widget w. Nothing is done if the widget had no cross-hairs. The result of the command is the empty string. crosshair::configure w ?arg...? This command changes the appearance of the cross-hairs in the canvas widget w. It is an error to call it for a canvas which has no cross-hairs. All arguments after the widget w are treated as options as for a canvas line item in w. Of particular interest are -fill and -dash. The result of the command are the current configuration settings. crosshair::track on w cmdprefix This command activates reporting of the location of the cross-hairs in the canvas widget w. It is an error to use this command for a canvas which has no cross-hairs. The result of the command is the empty string. After the invokation of this command the specified command prefix cmdprefix will be called whenever the mouse moves within the can- vas, with 7 arguments. These are, in order: [1] The widget w [2] The x-location of the cross-hairs, in pixels. [3] The y-location of the cross-hairs, in pixels. [4] The x-location of the top-left corner of the viewport, in pixels. [5] The y-location of the top-left corner of the viewport, in pixels. [6] The x-location of the bottom-right corner of the viewport, in pixels. [7] The y-location of the bottom-right corner of the viewport, in pixels. A previously existing callback for w will be disabled. I.e. per canvas widget with cross-hairs only one callback reporting their location is possible. crosshair::track off w This command disables the reporting of the location of the cross-hairs in the canvas widget w. It is an error to use this command for a canvas which has no cross-hairs. The result of the command is the empty string. BUGS, IDEAS, FEEDBACK This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category tklib :: crosshair of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation. KEYWORDS
canvas, cross-hairs, location, tracking, viewport COPYRIGHT
Copyright (c) 2003 Kevin Kenny Copyright (c) 2008 (docs) Andreas Kupries <andreas_kupries@users.sourceforge.net> crosshair 1.0.2 crosshair(3tk)
All times are GMT -4. The time now is 06:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy