You already have a public key
You will always generate a keypair. It's a public and private key shown as one entry. As you can always derive a public key from a private one, anyway.
What Seahorse and GPG does is just listing keys and only denote you can use to sign/decrypt using those keys if there's a private key available for those. Once you import other's public keys you will see those are listed as public-only keys, only available for encryption and signature validation.

As you can see, Seahorse will display keypairs as a two-key icon whereas for keys only a public key is present it will show a single key.
To verify this on the command line, use
gpg --list-keys
This prints all keys in the keyring, regardless of private key availability.
gpg --list-secret-keys
Prints all keys for which a private (secret) key is available.